场景是这样的
public class Test { public string name; public int val1; public int val1; } name |val 1 |val 2| 'aa' | 10 | 4 | 'aa' | 30 | 5 | 'bb' | 14 | 4 | 'bb' | 16 | 6 | 'cc' | 5 | 5 | 'cc' | 2 | 1 | 'cc' | 1 | 1 |
什么是按名称分组的最佳方式,并为每个名称获取汇总val_1和val_2
如
name |val 1 |val 2| 'aa' | 40 | 9 | 'bb' | 30 | 10 | 'cc' | 8 | 7 |
解决方法
试试这个
var results = from t in db.Tests group t by t.name into g orderby g.Key select new { name = g.Key,val_1 = g.Sum(x => x.val_1),val_2 = g.Sum(x => x.val_2) };
或者如果您更喜欢流利的语法:
var results = db.Tests.GroupBy(t => t.name) .OrderBy(g => g.Key) .Select(g => new { name = g.Key,val_2 = g.Sum(x => x.val_2) });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。