lambda表達式在LINQ中使用非常多,是以要想學好LINQ,那麼必須先了解什麼是lambda表達式,以及它是如何使用的。
首先們看一個lambda表達式在LINQ查詢中的應用的例子,我想通過這個例子我們能夠更快地了解lambda表達式。
例如:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 int[] numbers = { 2,5,28,31,17,16,42}; //建立資料源。
6
7 var numsMethod = numbers.Where(x => x < 20);//x=>x<20即為lambda表達式。
8
9 foreach (var x in numsMethod) //使用foreach語句周遊結果。
10 {
11 Console.Write("{0}",x);
12 Console.WriteLine();
13 }
14
15 Console.ReadKey();
16 }
17 }
程式輸出結果為:

通過這個例子,我想大家已經看到了lambda表達式在LINQ查詢中的使用,那麼接下來我們來詳細了解一下什麼是lambda表達式。
1,什麼是lambda表達式?
據查資料,lambda表達式來源于數學家Alonzo Church等人在1920年到1930年間發明的lambda積分。lambda積分是用于表示函數的一套系統,它使用希臘字母lambda(λ)來表示無名函數。近來,諸如Lisp和其方言的函數式程式設計語言使用這個術語來表示可以直接用于描述函數定義的表達式,表達式不再需要名字了。
2,lambda表達式的作用?
簡化匿名方法。
3,匿名方法轉化為lambda表達式?
我們可以通過如下步驟将匿名方法轉換為lambda表達式。
1> 删除delegate關鍵字。
2> 在參數清單和匿名方法主體之間放lambda運算符=>。lambda運算符讀作"goes to"。
如下代碼示範了這種轉換。
MyDel del = delegate(int x) { return x + 1; };//匿名方法。将匿名方法指派給變量del。
MyDel del1 = (int x) => { return x + 1; };//lambda表達式。
MyDel del2 = (x) => { return x + 1; };//lambda表達式。
MyDel del3 = x => { return x + 1; };//lambda表達式。
MyDel del4 = x => x+1;//lambda表達式。
4,lambda表達式的參數清單的要點?
1> lambda表達式參數清單中的參數必須在參數數量,類型和位置上與委托相比對。
2> 表達式的參數清單中的參數不一定需要包含類型(如隐式類型),除非委托有ref或out參數-此時類型是必須的(如顯式類型)。
3> 如果隻有一個參數,并且是隐式類型,周圍的圓括号可以被省略,否則它就是必須的。
4> 如果沒有參數,必須使用一組空的圓括号。
以上就是今天總結的lambda表達式,有不對的地方或者需要補充的地方希望大家來共同讨論,明天将會總結擴充方法的部分。
轉載于:https://www.cnblogs.com/mcgrady/archive/2011/12/29/2306678.html