Lambda 表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。
注意:Lambda 表达式都使用 Lambda 运算符为“=>”,该运算符读为“goes to”。可以将此表达式分配给委托类型。
该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式a=>a * a读作“a goes to a times a”。
Lambda表达式的基本表现形式:
(input parameters)=>expression
其中input parameters表示输入参数,expression表示表达式。
提示:Lambda输入的参数的数量可以是空、1个或多个。当输入的参数为空时。Lambda表达式左边的括号不能省略。
()=>Response.Write("这是一个Lambda表达式。");
如果Lambda表达式的输入参数的数量为1,输入参数的括号可以省略。
不省略(a)=>a*a;
省略 a=>a*a;
如果Lambda表达式的输入参数的数量大于1,输入参数的括号必须的,且参数之间用逗号(,)隔开。
(a,b)=>a*b;
注意:Lambda表达式的语句必须放置在“{”和“}”之间,Lambda表达式最常用的用法就是查询。
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}
例:LinqDBDataContext DB = new LinqDBDataContext();
var query = fromproduct in DB.Product
where product.Price == DB.Product.Max(p => p.Price)
select product;
GridView1.DataSource = query;
GridView1.DataBind();