Simple LinQ question: convert [][] to []
我想获取项目对象的集合或列表,但现在我得到了数组数组。
1
| Item [][] s = employees .Select(e => e .Orders.Select(o => new Item (e .ID, o .ID)).ToArray()).ToArray(); |
有人能选择我的解决方案吗?
P.S.Just Linq解决方案:)
值得一提的是,它可以用LINQ语法更加简洁、清晰地编写:
1 2 3
| var s = from e in employees
from o in e .Orders
select new Item (e .ID, o .ID); |
- 虽然我同意这一点,但我认为Orders应该引用回Employee,而不需要Item。
- + 1。请注意,此语法实际上被转换为selectmany。使用任何你觉得可读的东西。生成的代码完全相同。
您需要使用SelectMany来连接结果集。
1
| var items = employees .SelectMany(e => e .Orders.Select(o => new Item (e .ID, o .ID))); |
看一看Enumerables.SelectMany(),看看这个堆栈溢出问题中的例子。
您要查找的扩展方法称为"selectmany":http://msdn.microsoft.com/en-en/library/system.linq.enumerable.selectmany.aspx