IEnumerable< T>を取得しますIEnumerable< IEnumerable< T>>から
-
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);
所属していません StackOverflow