(1)Lambda表達式定義:
Lambda是創建匿名函數的另一種形式。它比對應的匿名方法更加的簡化。因此,所有的情況都推薦使用Lambda表達式。
它可以包括表達式和語句,並且用於創建委托和事件。
Lambda表達式由輸入參數,Lambda運算符和表達式構成。它的語法如下:(wdd)=>wdds wdd 表示輸入的參數。
=>為運算符,wdds為表達式或者語句模塊。
例1.下面創建一個Lambda表達式:m=>m*m; 分析:輸入參數m的值,然后計算出m的平方,並返回計算的結果。
例2:創建一個Lambda表達式,並獲取該值:int n=(int m)=>m*m; 分析:輸入參數m,計算出m的平方,並把返回計算的結果賦值給n;
參考代碼為:
Class Program
{
delegate int delA(int m);
static void Main(string[] args)
{
delA n= (m) => { return m*m; };
Console.WriteLine(e(2,3));
Console.ReadKey();
}
}
例3:創建一個Lambda表達式,並獲取該值:int n=(int m,int y)=>m*y; 分析:輸入參數m,y,計算出m和y的乘積,並把返回計算的結果賦值給n;
參考代碼為:
Class Program
{
delegate int delA(int m,int y);
static void Main(string[] args)
{
delA n= (m,y) => { return m*y; };
Console.WriteLine(e(2,3));
Console.ReadKey();
}
}
多個Lambda表達式可以構成Lambda語句塊,語句塊可以放在運算符的右邊,作為Lambda的主體,根據主體不同,
Lambda表達式可以分為:表達式Lambda和語句Lambda。語句模塊中可以包含多條語句,並且可以包括循環,方法
調用和if語句等。
如果Lambda運算符右邊是一個語句塊,則必須要有{和}包圍語句塊。
(2)Lambda查詢表達式
查詢表達式是一種查詢語法表示的表達式,它用於查詢和轉換來自任意支持LINQ的數據源中的數據。查詢表達式使用許多常見的
C#語言構造,易讀簡潔,容易掌握。它由一組類似於SQL或者XQuery的聲明型語法編寫的字句組成,每一個字句可以包含一個或
者多個C#表達式。這些表達式本身也可以是查詢表達式,或者包含表達式。
- 查詢表達式必須以from字句開頭,以select或group 字句結束。
- from字句:指定查詢操作的數據源和范圍變量。
- select字句:指定查詢結果的類型和表現形式。
- where字句:指定篩選元素的邏輯條件。
- let字句:引入用來保存查詢表達式中字句查詢結果的范圍變量
- order by:對查詢字句進行排序操作 ,包括升序和降序。
- group :對查詢結果進行分組。
- into字句:提供一個臨時標識符,join字句,group字句或者select字句可以通過該標識符引用查詢操作中的中間結果。
- join字句:用來連接多個查詢操作的數據源。