“Lambda 表達式”是一個匿名函數,它可以包含表達式和語句,并且可用于創建委托或表達式目錄樹類型。所有 Lambda 表達式都使用 Lambda 運算符 =>,該運算符讀為“goes to”。該 Lambda 運算符的左邊是輸入參數(如果有),右邊包含表達式或語句塊。Lambda 表達式?x => x * x?讀作“x goes to x times x”。可以將此表達式分配給委托類型。
?????表達式在右邊的 Lambda 表達式稱為“Lambda 表達式”。 Lambda 表達式在構造表達式目錄樹時廣泛使用。Lambda 表達式返回表達式的結果,并采用以下基本形式:
?????
?????Lambda 語句與 Lambda 表達式類似,只是語句括在大括號中:
?
?????=>?運算符具有與賦值運算符 (=) 相同的優先級,并且是右結合運算符。
?????Lambda 用在基于方法的 LINQ 查詢中,作為諸如 Where 和?Where(IQueryable, String,?array<Object>[]()[])?等標準查詢運算符方法的參數。
?????在 is 或 as 運算符的左側不允許使用 Lambda。
?????適用于匿名方法的所有限制也適用于 Lambda 表達式。
Del?d?=?(m,?n)?=>?{?int?r?=?m?+?n;?Response.Write(r);?};
d(6,?4);?
//result:?10
int[]?numbers?=?{?5,?4,?1,?3,?9,?8,?6,?7,?2,?0?};
int?oddNumbers?=?numbers.Count(n?=>?n?%?2?==?1);
//result:?5
var?lessThan6?=?numbers.TakeWhile(n?=>?n?<?6);
Response.Write(lessThan6.Count());
//result:?4
delegate?int?del(int?i);
del?myDelegate?=?x?=>?x?*?x;
Response.Write(myDelegate(5);?
//result:?25