微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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()
是否会对查询的第一部分产生任何影响,但对分组肯定不会产生任何影响。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。