2011-06-06 25 views
27

मेरे पास दो सूचियां List<WorkOrder> और List<PlannedWork> है, मैं नीचे वर्णित कार्यकर्ता संख्या पर दो सूचियों में शामिल होना चाहता हूं। दूसरे शब्दों में मेरे पास नियोजित काम की एक सूची है लेकिन मुझे काम के लिए काम के विवरण को जानने की जरूरत है। ऑर्डर नम्बर।मैं linq या lambda अभिव्यक्तियों का उपयोग करके दो सूचियों में कैसे शामिल हो सकता हूं

मैं लिनक और लैम्ब्डा अभिव्यक्तियों दोनों के लिए नया हूं, और मुझे अभी तक उनके सिर को चारों ओर लपेटा नहीं गया है।

class WorkOrder 
{ 
    public int WorkOrderNumber { get; set; } 
    public string WorkDescription { get; set; } 
} 

class PlannedWork 
{ 
    public int WorkOrderNumber { get; set; } 
    public DateTime ScheduledDate { get; set; } 
} 

उत्तर

54

ऐसा लगता है कि आप की तरह कुछ हैं:

var query = from order in workOrders 
      join plan in plans 
       on order.WorkOrderNumber equals plan.WorkOrderNumber 
      select new 
      { 
       order.WorkOrderNumber, 
       order.Description, 
       plan.ScheduledDate 
      }; 
+7

जॉन स्कीट ... मैंने इसे 30 सेकंड पहले पोस्ट किया था..और आपके पास पहले से ही एक जवाब है! – Brad

+7

और वह जानता है कि उसकी पत्नी क्या सोच रही है। –

+0

@ एसआरजे: यह मुझे स्पष्ट नहीं है कि आप क्या पूछ रहे हैं। मेरा सुझाव है कि आप एक [mcve] के साथ एक नया प्रश्न बनाएं जो दिखा रहे हैं कि आप क्या करने की कोशिश कर रहे हैं, आपने क्या किया है और क्या हुआ। Linq एक्सटेंशन विधियों के लिए –

46

रास्ता Extention के तरीके का उपयोग कर ऐसा करने के लिए, LINQ क्वेरी सिंटैक्स के बजाय इस तरह होगा:

var results = workOrders.Join(plans, 
    wo => wo.WorkOrderNumber, 
    p => p.WorkOrderNumber, 
    (order,plan) => new {order.WorkOrderNumber, order.WorkDescription, plan.ScheduledDate} 
); 
+5

+1। मुझे लगता है कि सी # में पढ़ने और लिखने पर यह संस्करण बेहतर हो जाता है। –

1
public class State 
     { 
      public int SID { get; set; } 
      public string SName { get; set; } 
      public string SCode { get; set; } 
      public string SAbbrevation { get; set; } 
     } 

     public class Country 
     { 
      public int CID { get; set; } 
      public string CName { get; set; } 
      public string CAbbrevation { get; set; } 
     } 


List<State> states = new List<State>() 
      { 
       new State{ SID=1,SName="Telangana",SCode="+91",SAbbrevation="TG"}, 
       new State{ SID=2,SName="Texas",SCode="512",SAbbrevation="TS"}, 
      }; 

      List<Country> coutries = new List<Country>() 
      { 
       new Country{CID=1,CName="India",CAbbrevation="IND"}, 
       new Country{CID=2,CName="US of America",CAbbrevation="USA"}, 
      }; 

      var res = coutries.Join(states, a => a.CID, b => b.SID, (a, b) => new {a.CName,b.SName}).ToList(); 
+0

मुझे यकीन है कि यह प्रश्न का उत्तर कैसे देता है ... – TheLethalCoder

+0

कृपया इस कोड का कुछ स्पष्टीकरण प्रदान करें (सही इंडेंटिंग भी अच्छा होगा) और यह सवाल का जवाब क्यों देता है। – trincot

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