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; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |