IEnumerable< T>を取得しますIEnumerable< IEnumerable< T>>から

StackOverflow https://stackoverflow.com/questions/244135

  •  04-07-2019
  •  | 
  •  

質問

パブリッククラス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&lt; List&lt; Item&gt;&gt; で、 1つの IEnumerable&lt; Item&gt;

ここでは、2つのループをコーディングしないようにしています。

役に立ちましたか?

解決

SelectMany が必要です:クエリ式で2番目(およびそれ以降)の from 句として表されます:

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