时间:2010-04-15 11:05:31

标签: c# linq arrays

我想得到Item对象的集合或列表,但我现在得到了数组数组。

Item[][] s = employees.Select(e => e.Orders.Select(o => new Item(e.ID, o.ID)).ToArray()).ToArray();

任何人都可以选择我的解决方案吗?

P.S。只是LinQ解决方案:)

4 个答案:

答案 0 :(得分:5)

您需要使用SelectMany来连接结果集。

var items = employees.SelectMany(e => e.Orders.Select(o => new Item(e.ID, o.ID)));

答案 1 :(得分:5)

对于它的价值,可以用LINQ语法更简洁明了地写出来:

var s = from e in employees
        from o in e.Orders
        select new Item(e.ID, o.ID);

答案 2 :(得分:3)

您正在寻找的扩展方法称为“SelectMany”:http://msdn.microsoft.com/en-en/library/system.linq.enumerable.selectmany.aspx

答案 3 :(得分:3)

查看Enumerables.SelectMany(),请参阅this Stack Overflow question中的示例。