2011-03-18 139 views

回答

3

第一符號通常被稱爲「查詢語法」,第二個「方法的語法」(或點符號,或λ語法) - 兩者都編譯成完全相同的代碼,但如已經通常提到的一個兩個更簡潔,大多數情況下這是點符號,但特別是對多個枚舉進行連接或分組時,查詢語法真的很明顯。

還檢查了LINQ Query Syntax versus Method Syntax (C#)

大多數查詢在介紹LINQ 文檔通過使用引入C#3.0的聲明 查詢語法寫成查詢 表達式。 但是,.NET公共語言運行庫 (CLR)本身沒有任何查詢 語法概念。因此,在 編譯時,查詢表達式是 轉換爲CLR 明白的方法:方法調用。這些 方法稱爲標準查詢 運算符,並且它們具有名稱,如 其中,Select,GroupBy,Join,Max, Average等等。您可以直接使用方法語法 而不是查詢語法將它們稱爲 。

一般來說,我們推薦查詢語法 ,因爲它通常比較簡單,而且更具可讀性;然而,在方法語法和 查詢語法之間沒有語義差異。

3

沒什麼。

第一個使用LINQ符號,而第二個使用擴展方法的符號 - 他們都做同樣的事情。

使用任何看起來更加賞心悅目給你。 :)

3

沒有區別。一種只是一種類似於SQL的語言擴展,而不是使用委託來實現相同的結果。

0

你已經注意到第一是LINQ符號,第二個使用擴展方法與拉姆達。使用第二個代碼來維護更少的代碼。但如果您認爲內部代碼或性能的相似性,只需使用秒錶並運行此代碼100000次並選擇最快的代碼。如果編譯的代碼是相似的,你會得到幾乎相同的時間。