C#3.0之神奇的Lambda表达式和Lambda语句
“Lambda 表達式”是一個匿名函數(shù),它可以包含表達式和語句,并且可用于創(chuàng)建委托或表達式目錄樹類型。所有 Lambda 表達式都使用 Lambda 運算符 =>,該運算符讀為“goes to”。該 Lambda 運算符的左邊是輸入?yún)?shù)(如果有),右邊包含表達式或語句塊。Lambda 表達式?x => x * x?讀作“x goes to x times x”。可以將此表達式分配給委托類型。
?????表達式在右邊的 Lambda 表達式稱為“Lambda 表達式”。 Lambda 表達式在構(gòu)造表達式目錄樹時廣泛使用。Lambda 表達式返回表達式的結(jié)果,并采用以下基本形式:
(input?parameters)?=>?expression?????
?????Lambda 語句與 Lambda 表達式類似,只是語句括在大括號中:
(input?parameters)?=>?{statement;}?
?????=>?運算符具有與賦值運算符 (=) 相同的優(yōu)先級,并且是右結(jié)合運算符。
?????Lambda 用在基于方法的 LINQ 查詢中,作為諸如 Where 和?Where(IQueryable, String,?array<Object>[]()[])?等標準查詢運算符方法的參數(shù)。
?????在 is 或 as 運算符的左側(cè)不允許使用 Lambda。
?????適用于匿名方法的所有限制也適用于 Lambda 表達式。
delegate?void?Del(int?x,?int?y);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 原文:http://blog.itpub.net/12639172/viewspace-464474/
轉(zhuǎn)載于:https://www.cnblogs.com/devhuichen/p/5000323.html
總結(jié)
以上是生活随笔為你收集整理的C#3.0之神奇的Lambda表达式和Lambda语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每人每年失去44小时睡眠 竟然是因为全球
- 下一篇: 宁德时代高层震荡:55岁的二当家带着千亿