2010-08-05 20 views
68

मेरे पास गुण वजन, मात्रा और मालिक के साथ बक्से का संग्रह है।LINQ लैम्ब्डा अभिव्यक्तियों में ग्रुपबी, गणना और योग का उपयोग

मैं बॉक्स जानकारी

जैसे की LINQ उपयोग करने के लिए एक संक्षिप्त सूची प्राप्त करने के (मालिक द्वारा) चाहते हैं

**Owner, Boxes, Total Weight, Total Volume** 
Jim,  5,  1430.00,  3.65 
George, 2,  37.50,  1.22 

क्या कोई मुझे दिखा सकता है कि लैम्ब्डा अभिव्यक्तियों के साथ ऐसा कैसे करें?

उत्तर

140
var ListByOwner = list.GroupBy(l => l.Owner) 
          .Select(lg => 
           new { 
            Owner = lg.Key, 
            Boxes = lg.Count(), 
            TotalWeight = lg.Sum(w => w.Weight), 
            TotalVolume = lg.Sum(w => w.Volume) 
           }); 
11
 var q = from b in listOfBoxes 
       group b by b.Owner into g 
       select new 
          { 
           Owner = g.Key, 
           Boxes = g.Count(), 
           TotalWeight = g.Sum(item => item.Weight), 
           TotalVolume = g.Sum(item => item.Volume) 
          }; 
5
var boxSummary = from b in boxes 
       group b by b.Owner into g 
       let nrBoxes = g.Count() 
       let totalWeight = g.Sum(w => w.Weight) 
       let totalVolume = g.Sum(v => v.Volume) 
       select new { Owner = g.Key, Boxes = nrBoxes, 
           TotalWeight = totalWeight, 
           TotalVolume = totalVolume } 
संबंधित मुद्दे