Using GroupBy, Count and Sum in LINQ Lambda Expressions

Jimbo picture Jimbo · Aug 5, 2010 · Viewed 154.7k times · Source

I have a collection of boxes with the properties weight, volume and owner.

I want to use LINQ to get a summarized list (by owner) of the box information

e.g.

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

Can someone show me how to do this with Lambda expressions?

Answer

bodee picture bodee · Aug 5, 2010
    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) 
                                });