公共类项目     {         ...     }

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&lt; List&lt; Item&gt;&gt; 我想要一个 IEnumerable&lt; Item&gt;

我在这里要求尽量避免编码2个循环。

有帮助吗?

解决方案

您需要 SelectMany ,在查询表达式中表示为子句中的第二个(和后续)

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

或者,忽略查询表达式:

var items = customer.Orders.SelectMany(order => order.Items);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top