2012-09-04 16 views
31

मैं एक वस्तु है कि इस तरह दिखता है।गिनती समूह का उपयोग करके Linq

उदाहरण के लिए:

Notice1.Name="Travel" 
Notice2.Name="Travel" 
Notice3.Name="PTO" 
Notice4.Name="Direct" 

मैं उत्पादन चाहते

Travel - 2 
PTO - 1 
Direct -1 

मैं इस कोड के साथ ठीक अलग नाम प्राप्त कर सकते, लेकिन मैं 1 LINQ बयान में गिना जाता है सब पाने के लिए नहीं कर पा रहे

theNoticeNames= theData.Notices.Select(c => c.ApplicationName).Distinct().ToList(); 

उत्तर

56
var noticesGrouped = notices.GroupBy(n => n.Name). 
        Select(group => 
         new 
         { 
          NoticeName = group.Key, 
          Notices = group.ToList(), 
          Count = group.Count() 
         }); 
48

एक Leniel के जवाब पर भिन्नता, का उपयोग कर एक different overload of GroupBy:

var query = notices.GroupBy(n => n.Name, 
       (key, values) => new { Notice = key, Count = values.Count() }); 

असल में यह सिर्फ Select कॉल elides।

+0

अच्छा एक जॉन। :) –

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