2008-10-28 16 views
10

सार्वजनिक वर्ग मद से { ... }एक IEnumerable <T> एक 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 लूप से बचने के लिए यहां पूछने के लिए कह रहा हूं। क्वेरी भाव की अनदेखी करने के

var items = from order in customer.Orders 
      from item in order.Items 
      select item; 
वैकल्पिक रूप से

,:

उत्तर

20

आप SelectMany जो के रूप में दूसरा (और बाद में) from खंड क्वेरी भाव में प्रतिनिधित्व किया है की जरूरत है,

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

SelectMany अच्छा है! :-) –

संबंधित मुद्दे