加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在1个linq表达式中汇总数据?

发布时间:2020-12-16 01:56:19 所属栏目:百科 来源:网络整理
导读:我有这个数据表: 我还有一个包含两个属性的类,它应该保存每个列的总和: class MyClass{ public decimal CatSum {get;set;} public decimal DogSum {get;set;}} 我目前通过以下方式填写道具: myClass.CatSum = dt.AsEnumerable().Sum(r = r["Cat"].ToDecim
我有这个数据表:

我还有一个包含两个属性的类,它应该保存每个列的总和:

class MyClass
{
 public decimal CatSum {get;set;}
 public decimal DogSum {get;set;}
}

我目前通过以下方式填写道具:

myClass.CatSum = dt.AsEnumerable().Sum(r => r["Cat"].ToDecimalOrZero());
 myClass.DogSum = dt.AsEnumerable().Sum(r => r["Dog"].ToDecimalOrZero())

有没有办法用1 linq查询填充(或用这些道具创建新类)这些道具? (我这里没有任何groupby字段)

;

解决方法

您可以使用MyClass实例作为累加器并将结果聚合到其中:

var myClass = dt.AsEnumerable()
                .Aggregate(new MyClass(),(a,r) => {
                                a.CatSum += r["Cat"].ToDecimalOrZero();
                                a.DogSum += r["DogS"].ToDecimalOrZero();
                                return a;
                           });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读