2008-10-28 98 views
10

公共類項目 一個IEnumerable的 { ... } 獲得從IEnumerable <IEnumerable的<T>>

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循環。

回答

20

你需要SelectMany,這是在查詢表達式表示爲第二(和後續)from條款:

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

另外,忽略查詢表達式:

var items = customer.Orders.SelectMany(order => order.Items); 
+2

是的SelectMany不錯! :-) – 2009-02-27 09:54:29

相關問題