SelectMany के प्रलेखन से जो मैं समझता हूं उससे, मैं इसे 1-कई रिश्तों के एक (फ़्लैटेड) अनुक्रम का उत्पादन करने के लिए उपयोग कर सकता हूं।लिंक - SelectMany भ्रम
मैं निम्नलिखित वर्गों
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
class Order
{
public int Id { get; set; }
public int CustomerId { get; set; }
public string Description { get; set; }
}
मैं तो जैसे इतना
var customers = new Customer[]
{
new Customer() { Id=1, Name ="A"},
new Customer() { Id=2, Name ="B"},
new Customer() { Id=3, Name ="C"}
};
var orders = new Order[]
{
new Order { Id=1, CustomerId=1, Description="Order 1"},
new Order { Id=2, CustomerId=1, Description="Order 2"},
new Order { Id=3, CustomerId=1, Description="Order 3"},
new Order { Id=4, CustomerId=1, Description="Order 4"},
new Order { Id=5, CustomerId=2, Description="Order 5"},
new Order { Id=6, CustomerId=2, Description="Order 6"},
new Order { Id=7, CustomerId=3, Description="Order 7"},
new Order { Id=8, CustomerId=3, Description="Order 8"},
new Order { Id=9, CustomerId=3, Description="Order 9"}
};
var customerOrders = from c in customers
from o in orders
where o.CustomerId == c.Id
select new
{
CustomerId = c.Id
, OrderDescription = o.Description
};
foreach (var item in customerOrders)
Console.WriteLine(item.CustomerId + ": " + item.OrderDescription);
यह मैं क्या जरूरत के लिए देता है क्वेरी अभिव्यक्ति सिंटैक्स का उपयोग उन्हें इस्तेमाल करने की कोशिश की है।
1: Order 1
1: Order 2
1: Order 3
1: Order 4
2: Order 5
2: Order 6
3: Order 7
3: Order 8
3: Order 9
मैं इस SelectMany विधि जब क्वेरी अभिव्यक्ति सिंटैक्स का उपयोग नहीं करने के लिए अनुवाद का उपयोग कर मान?
किसी भी तरह से, मैं SelectMany का उपयोग करके अपने सिर को लपेटने की कोशिश कर रहा हूं। तो अगर मेरी उपरोक्त क्वेरी दो श्रेणियों और नकली डेटा को देखते हुए SelectMany में अनुवाद नहीं करती है, तो क्या कोई मुझे एक linq क्वेरी प्रदान कर सकता है जो SelectMany का उपयोग करता है?
सी [भाग 41] (http://msmvps.com/sklogs/jon_skeet/archive/2011/01/28/reimplementing-linq-to-objects-part-41-how-query-expressions-work.aspx) जॉन स्कीट की [एडुलिनक श्रृंखला] (http://msmvps.com /blogs/jon_skeet/archive/tags/Edulinq/default.aspx)। यह क्वेरी अभिव्यक्ति अनुवाद प्रक्रिया बताता है। –
इसके बारे में सोचकर, यह भी देखें [भाग 9: SelectMany] (http://msmvps.com/blogs/jon_skeet/archive/2010/12/27/reimplementing-linq-to-objects-part-9-selectmany.aspx) :) –
जॉन स्कीट की एडुलिनक श्रृंखला अब उपलब्ध है [यहां] (http://codeblog.jonskeet.uk/category/edulinq/)। –