Lambda表達式

在C# 2.0中,匿名方法允許我們以內聯的方式來實現委託實例,它提供強大的函數式編程語言,但是標記顯得相當的冗長和帶有強制性。我們使用C# 2.0 中的匿名方法查找,代碼如下:

var inString = list.FindAll(delegate(string s)
{ return s.Indexof("CTO") >= 0; });

現在可以使用C# 3.0帶來的Lambda表達式允許我們使用一種更接近人的思維、更自然的方式來實現類似於匿名方法同樣的效果,看下面的代碼多麼簡潔:

var inString = list.FindAll(s => s.Indexof("CTO") >= 0);

Lambda表達式格式:(參數列表)=>表達式或語句塊
具體意義:定義Lambda接受參數列表,運行表達式或語句塊返回表達式或語句塊的值傳給這個參數列表。

Lambda表達式參數類型可以是隱式類型或顯式類型。在顯式列表中,每個參數的類型是顯式指定的,在隱式列表中,參數的類型由Lambda表達式出現的語境自動推斷類型。
Lambda表達式的參數列表可以有一個或多個參數,或者無參數。在有單一的隱型參數的lambda表達式中,圓括號可以從參數列表中省略。
例如:

(x, y) => x * y;//多參數,隱式類型=>表達式
x => x * 10;//單參數,隱式類型=>表達式
x => { return x * 10; }; //單參數,隱式類型=>語句塊
(int x) => x * 10;//單參數,顯式類型=>表達式
(int x) => { return x * 10; };//單參數,顯式類型=>語句塊
() => Console.WriteLine(); //無參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章