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

c# – 按列排序的Linq查询摘要

发布时间:2020-12-16 01:54:21 所属栏目:百科 来源:网络整理
导读:场景是这样的 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 | 什么是按名称分组的最佳方式,
场景是这样的

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)
                              });

(编辑:李大同)

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

    推荐文章
      热点阅读