Lambda表达式 这玩意很复杂的说。慢慢弄 先来个简单的
var ls = new [] { " a " , " ab " , " ba " , " c " }; var rs = Array.FindAll(ls, s => (s.IndexOf( " a " ) > - 1 )); foreach (var s1 in rs) { listBox1.Items.Add(s1); } 这里 s => (s.IndexOf("a") > -1) 就是说 在指定的ls字符串数组中筛选含 “a” 的字符串。 语法如下: ( 参数列表 ) => 表达式或者语句块其中:参数个数:可以有多个参数,一个参数,或者无参数。表达式或者语句块:这部分就是我们平常写函数的实现部分(函数体)。 其中“参数列”中可包含任意个参数(与委托对应),如果参数列中有0个或1个以上参数,则必须使用括号括住参数列,如下: ()=>Console.Write("0个参数") i=>Console.Write("1个参数时参数列中可省略括号,值为:{0}",i) (x,y) =>Console.Write("包含2个参数,值为:{0}*{1}",x,y)而“语句或语句块”中如果只有一条语句,则可以不用大括号括住否则则必须使用,如下: i=>Console.Write("只有一条语句") i=>{Console.Write("使用大括号的表达式");} //两条语句时必须要大括号 i=>{i++;Console.Write("两条语句的情况");}
转载于:https://www.cnblogs.com/wind8250/archive/2008/05/07/1186455.html