【发布时间】:2011-02-08 08:04:00
【问题描述】:
我想获取 Item 对象的集合或列表,但我现在得到了数组数组。
Item[][] s = employees.Select(e => e.Orders.Select(o => new Item(e.ID, o.ID)).ToArray()).ToArray();
任何人都可以选择我的解决方案吗?
附:只是 LinQ 解决方案:)
【问题讨论】:
我想获取 Item 对象的集合或列表,但我现在得到了数组数组。
Item[][] s = employees.Select(e => e.Orders.Select(o => new Item(e.ID, o.ID)).ToArray()).ToArray();
任何人都可以选择我的解决方案吗?
附:只是 LinQ 解决方案:)
【问题讨论】:
您需要使用SelectMany 来连接结果集。
var items = employees.SelectMany(e => e.Orders.Select(o => new Item(e.ID, o.ID)));
【讨论】:
对于它的价值,这可以用 LINQ 语法写得更简洁明了:
var s = from e in employees
from o in e.Orders
select new Item(e.ID, o.ID);
【讨论】:
Orders 应该引用回Employee,并且不需要Item。跨度>
您要查找的扩展方法称为“SelectMany”:http://msdn.microsoft.com/en-en/library/system.linq.enumerable.selectmany.aspx
【讨论】:
看看Enumerables.SelectMany(),见this Stack Overflow question中的例子。
【讨论】: