Lambda表达式:是一个匿名委托,是一种高效的类似于函数式编程的表达式,也是LINQ的基础。

Lambda表达式可以有多个参数、一个参数,或者没有参数。其参数类型可以隐式或者显式。示例代码如下:

  1. (x, y) => x * y         //多参数,隐式类型=> 表达式  
  2. x => x * 5              //单参数, 隐式类型=>表达式  
  3. x => { return x * 5; }      //单参数,隐式类型=>语句块  
  4. (int x) => x * 5            //单参数,显式类型=>表达式  
  5. (int x) => { return x * 5; }      //单参数,显式类型=>语句块  
  6. () => Console.WriteLine()   //无参数   注:无参数必须显式写()
例:
Func<string,int>strLength=delegate(stringstr){returnstr.Length;};//匿名委托
strLength=(stringstr)=>{returnstr.Length;};//(显式类型参数列表)=> {语句},lambda表达式最冗长版本
strLength=(stringstr)=>str.Length; //(显式类型参数列表)=> 表达式
strLength=(str)=>str.Length;//(隐式类型参数列表)=> 表达式
strLength=str=>str.Length;//参数名 => 表达式