lambda表達式是對匿名方法的一種改進,具備更加簡潔的語法和更易理解的形式,lambda表達式能夠包括表達式和語句,而且能夠用與建立委託或表達式目錄樹類型。html
lambda表達式都使用Lambda運算符=>,讀做goes to。該Lambda運算符的左邊是輸入參數,右邊包含表達式或者語句塊。spa
Lambda表達式的聲明:(參數列表)=>{方法體}code
其中的參數列表和普通方法的參數列表相同,Lambda表達式是升級版的匿名方法,以下面語法所示:htm
返回類型 方法名(參數){方法體} //普通方法 delegate (參數列表) {方法體} //匿名方法 (參數列表)=>{方法體} //
下面舉個例子:blog
//求兩個整數最大值 (int x,int y)=>{return x>y?x:y;} //決斷一個字符串是不是數字 (string text)=> { double d; return double.TryParse(text,out d); } //輸入hello world ()=>{Console.WriteLine("hello world");}
特別須要指出的是若是lambda表達式沒有參數,則參數爲空,但必需要圓括號。字符串
下面看一下lambda表達式的更簡潔語法:string
(1)若是lambda表達式的參數類型是能夠經過上下午推斷時,參數列表外面的圓括號也能夠省略,以下代碼所示it
(x,y)=>{return x>y?x:y;}
(2)若果lambda表達式只有一個參數且參數類型被省略,則參數列表外面的圓括號也能夠省略,以下代碼class
x=>{return x++;}
(3)若是lambda語句的方法體只有一條return語句,且return語句有返回類型,則return關鍵字、分號、大括號均可以省略,此時lambda表達式的方法體只剩下一個表達式,以下例子,lambda
(x,y)=>x>y?x:y; //(x,y)=>{retrun x>y?x:y;} x=>x++; //x=>{retrun x++;}
舉例說明lambda表達式的應用:
輸出的結果是:
轉自http://www.cnblogs.com/flykai/p/3235827.html