C#3.0之神奇的Lambda表示式和Lambda語句
“Lambda 表示式”是一個匿名函式,它可以包含表示式和語句,並且可用於建立委託或表示式目錄樹型別。所有 Lambda 表示式都使用 Lambda 運算子 =>,該運算子讀為“goes to”。該 Lambda 運算子的左邊是輸入引數(如果有),右邊包含表示式或語句塊。Lambda 表示式 x => x * x 讀作“x goes to x times x”。可以將此表示式分配給委託型別。
表示式在右邊的 Lambda 表示式稱為“Lambda 表示式”。 Lambda 表示式在構造表示式目錄樹時廣泛使用。Lambda 表示式返回表示式的結果,並採用以下基本形式:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->(input parameters) => expression
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->(input parameters) => expression
Lambda 語句與 Lambda 表示式類似,只是語句括在大括號中:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->(input parameters) => {statement;}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->(input parameters) => {statement;}
=> 運算子具有與賦值運算子 (=) 相同的優先順序,並且是右結合運算子。
Lambda 用在基於方法的 LINQ 查詢中,作為諸如 Where 和 Where(IQueryable, String, array<Object>[]()[]) 等標準查詢運算子方法的引數。
在 is 或 as 運算子的左側不允許使用 Lambda。
適用於匿名方法的所有限制也適用於 Lambda 表示式。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-464474/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java之lambda表示式Java
- Python學習(13)--Lambda表示式和switch語句的實現Python
- c++之lambda表示式C++
- lambda 表示式
- lambda表示式
- [轉]Java 8 的 lambda 表示式 Java 8 的 lambda 表示式Java
- Java的Lambda表示式Java
- cpp的lambda表示式
- JDK1.8之lambda表示式JDK
- JDK1.8 之Lambda表示式JDK
- C# Lambda表示式詳解,及Lambda表示式樹的建立C#
- Java | Lambda表示式Java
- Lambda表示式(Java)Java
- java lambda 表示式Java
- 八,Lambda表示式
- Java Lambda表示式Java
- C#中的Lambda表示式和表示式樹C#
- kotlin 函式和 Lambda 表示式Kotlin函式
- 5.函式和lambda表示式函式
- JDK 1.8 新特性之Lambda表示式JDK
- Python3之lambda表示式Python
- 【C++】C++之Lambda表示式C++
- 【譯】java8之lambda表示式Java
- Lambda 表示式的應用
- Java 中的 Lambda 表示式Java
- 從五大語言看函式和lambda表示式函式
- 淺談lambda表示式
- Lambda表示式詳解
- kotlin lambda表示式Kotlin
- Python - lambda 表示式Python
- Lambda表示式總結
- Java 8 Lambda 表示式Java
- C++Lambda表示式C++
- java 8 lambda表示式Java
- Java Lambda 表示式初探Java
- Python Lambda 表示式Python
- 【Kotlin】Lambda表示式Kotlin
- C#lambda表示式C#