c#collections并将每个属性值抓取到一个新数组中

时间:2011-06-28 14:56:38

标签: c# arrays

我有一个对象列表,每个对象都有自己的id属性。我需要从存储的对象中创建一个id的icollection。除了循环遍历对象列表之外,还有一种优雅的方法,抓取id值并将其转储到集合中吗?

提前致谢

3 个答案:

答案 0 :(得分:3)

LINQ是你的朋友:)

List<int> ids = entities.Select(x => x.Id).ToList();

或如果必须(如问题标题)进入数组:

int[] ids = entities.Select(x => x.Id).ToArray();

当然 只是遍历集合,但它是你不必自己写的代码......

基本上,每当你发现自己想要做“像这样的事情” - 转换,聚合,过滤,展平等一个集合时 - 你应该看看LINQ是否可以帮助你。

答案 1 :(得分:3)

如何使用具有所需属性的Select()投影(在您的情况下仅为Id)使用Linq(将为您进行迭代):

var idCollection = someList.Select(x=> x.Id).ToList();

答案 2 :(得分:0)

Linq救援:

var names=Controls.Select(w=>w.Name).ToArray();     // where this is a form