我有一個對象的列表,每個對象都有它自己的id屬性。我需要從存儲的對象中創建一個icollection。除了遍歷對象列表之外,是否有一種優雅的方式,抓取id值並將其轉儲到集合中?c#集合和抓取每個屬性值到一個新的數組中
在此先感謝
我有一個對象的列表,每個對象都有它自己的id屬性。我需要從存儲的對象中創建一個icollection。除了遍歷對象列表之外,是否有一種優雅的方式,抓取id值並將其轉儲到集合中?c#集合和抓取每個屬性值到一個新的數組中
在此先感謝
LINQ是你的朋友:)
List<int> ids = entities.Select(x => x.Id).ToList();
或到一個數組,如果你必須(按問題的標題):
int[] ids = entities.Select(x => x.Id).ToArray();
當然,這做只是迭代集合,但它的代碼你不必自己寫...
基本上,每當你發現自己想要做「這樣的事情」 - 轉換,聚合,過濾,展平等一個集合 - 你應該看看是否LINQ可以幫助你。
如何使用Select()
投影與你想要的屬性(在你的情況只是Id
)使用LINQ(這將做迭代你):
var idCollection = someList.Select(x=> x.Id).ToList();
LINQ到救援:
var names=Controls.Select(w=>w.Name).ToArray(); // where this is a form
對於OP:聲明式與命令式代碼。 – jason