English 中文(简体)
从IEnumerable <IEnumerable <T >>中获取IEnumerable <T>
原标题:
  • 时间:2008-10-28 17:24:26
  •  标签:

public class Item { ... }

public class Order
{
    public List<Item> Items
    ...
}

public class Customer
{
    public List<Order> Orders
    ...
}

现在,使用LINQ,我需要获取客户购买的所有商品。我该怎么做?

我尝试使用类似的语句 var items = from o in cust.Orders select o.Items;,但结果是 IEnuberable<List<Item>>,而我只想要一个 IEnumerable<Item>

我在这里询问,试图避免编写 2 个循环。

最佳回答

你需要使用SelectMany,在查询表达式中它作为第二个(以及后续的)from子句表示:

var items = from order in customer.Orders
            from item in order.Items
            select item;

或者,忽略查询表达式:

var items = customer.Orders.SelectMany(order => order.Items);
问题回答

暂无回答




相关问题
热门标签