【问题标题】:How to write "group by" + "sum" in just one clause?如何在一个子句中写“group by”+“sum”?
【发布时间】:2019-06-09 13:21:09
【问题描述】:

我有

的样本数据
IEnumerable<Employee> ie;

其中 Employee 包含“姓名、薪水、部门 ID”

我可以使用 2 个子句按部门 id 分组,然后在 for 循环中“汇总”每个组,如下所示:

        var group3 = ie.GroupBy(x => x.Department_id);
        foreach (var g in group3)
        {
            Console.WriteLine(g.Sum(x=>x.Salary));
        }

是的,它可以工作,但是我可以让我的代码更简单吗,我的意思是如何摆脱 foreach 循环来仅在我的 linq 语句中计算我的 Sum() 并将其写成:

var group3 = from e in ie group e by e.Department_id xxxxxxxxx Sum xxxxx

如何写这个语句?谢谢。

【问题讨论】:

    标签: c# linq sum aggregate


    【解决方案1】:
    var results =  ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary));
    
     foreach (var item in result)
     {
         Console.WriteLine(result);
     }
    

    或

    ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary))
                .ToList().ForEach(x => Console.WriteLine(x));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      相关资源
      最近更新 更多