Analytics

2013年2月27日 星期三

[LINQ]使用 LINQ對DataTable做群組 並加總多個欄位(DataTable GroupBy Sum multipleColumn)


問題
使用 LINQ對DataTable做群組 並加總多個欄位



解決方法
Single Group
  1. var result= from a in MyDataTable.AsEnumerable()
  2.  
  3.             group a by a.Field<string>("resource_name")into g
  4.  
  5.             select new
  6.  
  7.                 {
  8.  
  9.                     groupName = g.Key,
  10.  
  11.                     groupSum = g.Sum(r => r.Field<Decimal>("sum_field"))
  12.  
  13.                 };
  14.  
Multiple Group
  1. var result= from a in MyDataTable.AsEnumerable()
  2.  
  3.             group a by
  4.  
  5. new {groupName1= a.Field<string>("resource_name")
  6.  
  7. , groupName2= a.Field<int>("resource_age")} into g
  8.  
  9.             select new
  10.  
  11.                 {
  12.  
  13.                     groupName = g.Key.groupName1,
  14.  
  15.  
  16.  
  17.                 groupAge = g.Key.groupName2,
  18.  
  19.                     groupSum = g.Sum(r => r.Field<Decimal>("sum_field"))
  20.  
  21.                 };

沒有留言:

熱門文章