LINQ:如何使用方法样式linq对分组求和?

| 在下面的代码中,我想在deptGroup中的每个分组内分别为OBFY和CFY求和。任何人都有任何想法,我尝试过coupla的东西,但无法理解。谢谢!!
  var deptGroup = prodCostsTotals.AsQueryable()
                                 .Select(r => dt.Rows.Add(new object[]
                                     {   
                                       Convert.ToInt32(r.Field<string>(\"Proc\")),  
                                       r.Field<string>(\"UnitL\"),
                                       r.Field<Decimal?>(\"OBFY\"),
                                       r.Field<Decimal?>(\"CFY\")
                                     })).GroupBy(g => g.Field<string>(\"Proc\"));
已邀请:
在我看来,您过度使用了1英镑。如果您的数据在一个不错的类中,则可以这样编写:
data.GroupBy(x => x.Proc)
    .Select(g => new
                 {
                     Proc = g.Key,
                     OBFYSum = g.Sum(x => x.OBFY),
                     CFYSum = g.Sum(x => x.CFY)
                 })
但是,如果您真的想从
DataTable
开始并将中间结果添加到另一个
DataTable
中,则可以这样做:
prodCostsTotals.AsQueryable()
               .Select(r => dt.Rows.Add(new object[]
                   {   
                     Convert.ToInt32(r.Field<string>(\"Proc\")),  
                     r.Field<string>(\"UnitL\"),
                     r.Field<Decimal?>(\"OBFY\"),
                     r.Field<Decimal?>(\"CFY\")
                   }))
               .GroupBy(g => g.Field<string>(\"Proc\"))
               .Select(g => new
                 {
                     Proc = g.Key,
                     OBFYSum = g.Sum(x => x.Field<Decimal?>(\"OBFY\")),
                     CFYSum = g.Sum(x => x.Field<Decimal?>(\"CFY\"))
                 })
请注意,我不知道您使用
AsQueryable()
是否会对查询的第一部分产生任何影响,但对分组肯定不会产生任何影响。

要回复问题请先登录注册