C#List <> GroupBy 2的值

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

4 Solutions collect form web for “C#List <> GroupBy 2的值”

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;

  • 在Python中,“.append()”和“+ = ”有什么区别?
  • 检查列表中的所有项目是否相同
  • 获取一个map()来返回Python 3.x中的一个列表
  • Android无尽列表
  • 在.Net中,如何将ArrayList转换为强types的通用列表而不使用foreach?
  • 是list :: size()真的是O(n)?
  • Python中append和extend列表方法的区别
  • 你如何通过STL列表向后迭代?
  • “列表理解”是什么意思? 它是如何工作的,如何使用它?
  • First()和Find()之间的区别
  • 逗号分隔django模板中的列表