lambda表达式

语法格式:参数列 => 语句或语句块

其中“参数列”中可包含任意个参数(与委托对应),如果参数列中有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("两条语句的情况"); }
如果“语句或语句块”有返回值时,如果只有一条语句则可以不输写“return”语句,编译器会自动处理,否则必须加上
语法本质:   “匿名方法”,即当编译我们的程序代码时,“编译器”会自动将“Lambda表达式”转换为“匿名方法”,如下例:
string[] names = { "agen", "balen", "coure", "apple" };
string[] findNameA = Array.FindAll<string>(names, delegate(string v) { return v.StartsWith("a"); });
string[] findNameB = Array.FindAll<string>(names, v => v.StartsWith("a"));
原文地址:https://www.cnblogs.com/thxuaimin/p/2999757.html