I'm using C# on Framework 3.5. I'm looking to quickly group a Generic List<> by two properties. For the sake of this example lets say I have a List of an Order type with properties of CustomerId, ProductId, and ProductCount. How would I get the sum of ProductCounts grouped by CustomerId and ProductId using a lambda expression?
var sums = Orders.GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group => group.Sum(x => x.ProductCount));
I realize this thread is very old but since I just struggled through this syntax I thought I'd post my additional findings - you can return the sum and the IDs (w/o foreach) in one query like so:
var sums = Orders .GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group =>new {group.Key, ProductCount = group.Sum(x => x.ProductCount)});
The tricky part for me to get it working is that the sum must be aliased, apparently...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With