我相信這是一個微不足道的問題,但我找不到一個好例子。假設你想要做的就是改變列表中所有對象的一個屬性。我想說的是:Linq的簡單轉換
List<SomeType> list = ...;
list.Select(x => x { x.Name = "Foo" });
注意不存在「新」關鍵字。我不想重新創建已經存在的對象,只需在列表的每個元素上執行一行代碼(在本例中爲簡單賦值)。
這是可能的linq在一些優雅的方式?
在此先感謝!
我相信這是一個微不足道的問題,但我找不到一個好例子。假設你想要做的就是改變列表中所有對象的一個屬性。我想說的是:Linq的簡單轉換
List<SomeType> list = ...;
list.Select(x => x { x.Name = "Foo" });
注意不存在「新」關鍵字。我不想重新創建已經存在的對象,只需在列表的每個元素上執行一行代碼(在本例中爲簡單賦值)。
這是可能的linq在一些優雅的方式?
在此先感謝!
很簡單。其實它只是List類的一個方法,但它允許你使用Lambda表達式。
list.Foreach(x => x.Name = "Foo" );
絕對不是擴展名。只是T – spender 2010-08-02 19:17:10
如果你想改變集合,它並不真正屬於Linq。請參閱Eric Lippert's post以瞭解原因。
列表的標準方法爲什麼downvote? – spender 2010-08-02 19:15:24
雖然建議的解決方案的工作,LINQ的是用於查詢。不要濫用它。 – 2010-08-02 19:15:43
@Doc Brown:Linq不僅適用於查詢! – 2010-08-02 22:34:00
@Christopher Edwards:我很確定你知道什麼是縮寫LINQ。如果你不相信,可以看一下鏈接到Eric Lippert發佈的文章。 – 2010-08-03 06:18:07