我有一个对象列表,每个对象都有自己的id属性。我需要从存储的对象中创建一个id的icollection。除了循环遍历对象列表之外,还有一种优雅的方法,抓取id值并将其转储到集合中吗?
提前致谢
答案 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