2
當使用像Enumerable.Select這樣的LINQ擴展方法時,最好使用Lambda表達式還是常規方法?LINQ擴展方法:使用Lambda表達式還是方法?
我在(內存)優化*和可讀性**方面都提出這個問題。
示例代碼:
private void Main() {
var array = new int[1];
var result1 = array.Select(x => x.ToString()); // Lambda
var result2 = array.Select(LinqHelper); // method
}
private string LinqHelper(int x) {
return x.ToString();
}
*
我主要想關閉創建與他們未使用的實例變量的作用域,僅僅是因爲這些變量在作用域時拉姆達創建
。編輯 - 這是愚蠢的想法,因爲只有在Lambda表達式中引用變量時纔會捕獲變量。
**這兩個選項對我來說都不錯。
在不同情況下都有各自的優點 - 但正如您所說,爲了便於閱讀,請不要將方法命名爲「LinqHelper」。將它命名爲對讀者有價值的東西。 =)是的,我意識到這是一個例子,但仍然如此。對於後人... –
哦,我同意,但我認爲這種類型的命名對於StackOverflow閱讀器更有價值;更容易掌握正在發生的事情。 –
是的!理解上下文。這項業務非常有價值。 ;) –