Lambda 表达式是一个可用于创建 委托 或 表达式目录树类型的 匿名函数。 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数,对于编写 LINQ 查询表达式特别有用。
C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。语法如下:
形参列表=>函数体
函数体多于一条语句的可用大括号括起。
示例:
Lambda 在基于方法的 LINQ 查询中用作标准查询运算符方法(如 Where)的参数。
使用基于方法的语法在Where类中调用 Enumerable方法时(如在 LINQ to Objects 和 LINQ to XML中一样),参数是委托类型
System.Func<T.TResult>。
使用 Lambda 表达式创建该委托最为方便。 例如,在System.Linq.Queryable类中调用相同的方法时(如在 LINQ to SQL 中一样),参
数类型为System.Linq.Expressions.Expression<Func>,其中 Func 是最多具有十六个输入参数的任何一个 Func 委托。
同样,Lambda 表达式只是一种非常简洁的构造该表达式目录树的方式。 尽管事实上通过 Lambda 创建的对象具有不同的类型,但
Lambda 使得 Where调用看起来类似。