2009-12-08 19 views
70

क्या सुधार एकाधिक स्तंभोंLINQ समूह एकाधिक क्षेत्रों तक मदद -Syntax

उदाहरण 1

var query = from cm in cust 
      group cm by new { cm.Customer, cm.OrderDate } into cms 
      select 
      new 
      { Key1 = cms.Key.Customer,Key2=cms.Key.OrderDate,Count=cms.Count() }; 

उदाहरण 2 (गलत)

द्वारा समूह inorder के उदाहरण 2 के लिए आवश्यक है
var qry = 
    cust.GroupBy(p => p.Customer, q => q.OrderDate, (k1, k2, group) => 
    new { Key1 = k1, Key2 = k2, Count = group.Count() }); 

उत्तर

127

वही अनाम प्रकार का उपयोग वें ई डॉट नोटेशन है कि आप क्वेरी अभिव्यक्ति में कार्य करें:

var qry = cust.GroupBy(cm => new { cm.Customer, cm.OrderDate }, 
      (key, group) => new { Key1 = key.Customer, Key2 = key.OrderDate, 
            Count = group.Count() }); 

(कोई वास्तविक आईडीई में मैं (key, group)cm पैरामीटर के तहत खड़े होगा, लेकिन तब यह अतः में लपेट होगा।)

+0

जॉन, मैं विस्तार विधि का उपयोग करने पर हमेशा गलती कर रहा हूं, क्या परिचित होने का कोई आसान तरीका है? – Udana

+0

@Udana: मुझे यह देखने में बहुत मदद मिली है कि सी # कंपाइलर क्वेरी एक्सप्रेशन के साथ क्या करता है - लेकिन मैं एक विशिष्ट-आधारित लड़का हूं। उपलब्ध ओवरलोड और दस्तावेज़ीकरण को पढ़ने में भी बहुत मदद मिलती है :) –

+0

@ जोन स्कीट: 'ग्रुपबी()' के इस अधिभार में एमएसडीएन में अधिक विवरण नहीं है। क्या आप इसके बारे में एक पंक्ति लिख सकते हैं? – FMFF

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