C#List <> GroupBy 2的值

我在Framework 3.5上使用C#。 我期待通过两个属性快速分组通用列表<>。 为了这个例子,我们可以说我有一个订单types的列表,具有CustomerId,ProductId和ProductCount属性。 我怎样才能得到由CustomerId和ProductId使用lambdaexpression式分组的ProductCounts的总和?

var sums = Orders.GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group => group.Sum(x => x.ProductCount)); 

我意识到这个线程是非常古老的,但因为我只是努力通过这个语法,我想我会张贴我的额外的调查结果 – 你可以返回总和和ID(W / O foreach)在一个查询如下所示:

 var sums = Orders .GroupBy(x => new { x.CustomerID, x.ProductID }) .Select(group =>new {group.Key, ProductCount = group.Sum(x => x.ProductCount)}); 

让我工作的棘手的部分是,总和必须是别名,显然…

另外,如果你想获得每个金额的ID,你可以这样做

 var customerAndProductGroups = from order in Orders orderby order.CustomerID, order.ProductID // orderby not necessary, but neater group order by new { order.CustomerID, order.ProductID }; foreach (var customerAndProductGroup in customerAndProductGroups) { Console.WriteLine("Customer {0} has ordered product {1} for a total count of {2}", customerAndProductGroup.Key.CustomerID, customerAndProductGroup.Key.ProductID, customerAndProductGroup.Sum(item => item.ProductCount)); } 

var New1 = EmpList.GroupBy(z => z.Age).OrderBy(Employee => Employee.Key);

dataGridView1.DataSource = New1;