我似乎是有問題的通信下面lambda表達式的確切含義與小理解這樣的表達式的顯影劑(其中列表是一個.NET通用列表):問題的拉姆達的通信表達式
list.Sort((x, y) => x.Name.CompareTo(y.Name));
您如何向其他開發人員解釋此聲明?你會告訴他什麼?
編輯:我自從用lambda表達式取代了Linq。
我似乎是有問題的通信下面lambda表達式的確切含義與小理解這樣的表達式的顯影劑(其中列表是一個.NET通用列表):問題的拉姆達的通信表達式
list.Sort((x, y) => x.Name.CompareTo(y.Name));
您如何向其他開發人員解釋此聲明?你會告訴他什麼?
編輯:我自從用lambda表達式取代了Linq。
宣讀的聲明如下,意思很清楚 -
Sort the list, such that for all x & y in the list, x.Name is compared to y.Name
我下面會說:
Sort
處於List<T>
類中定義的方法(x, y) => x.Name.CompareTo(y.Name)
是lambda表達式這是declading委託到匿名方法的短手風格。將=>
左側的部分視爲方法簽名,將右側的部分視爲方法體。方法簽名不需要明確輸入參數的類型;編譯器根據List<T>
的類型進行計算。Name
屬性。x
傳遞給排序方法,代碼將拋出NullReferenceException
,其中Name
爲null
。Sort()
方法接受一個委託(方法),它接受兩個參數並返回一個整數,指定第一個參數與第二個參數的比較方式。該代表是從具有運算符=>
的lambda表達式創建的,該運算符的一側具有參數(x,y)
,另一側具有返回值的表達式。
感謝的問題,我已經編輯以澄清問題這不是Linq本身 – CarneyCode 2011-03-01 06:30:52
謝謝,我已經編輯澄清,這不是LINQ的這樣 – CarneyCode 2011-03-01 06:31:26