You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单条LINQ语句中实现GroupBy+Sum聚合操作?

简化LINQ分组求和的实现方式

嘿,这事儿好办!你想要把分组和薪资求和一步完成,不用单独写foreach循环,完全可以在LINQ语句里直接搞定,给你两种常用的写法:

查询表达式写法(符合你想要的from...group...格式)

你可以用into关键字把分组后的结果暂存,然后直接在select里计算每组的薪资总和,返回包含部门ID和对应总薪资的结果集:

var group3 = from e in ie
             group e by e.Department_id into g
             select new { DepartmentId = g.Key, TotalSalary = g.Sum(x => x.Salary) };

之后如果要输出结果,直接遍历group3就行,比如:

foreach (var item in group3)
{
    Console.WriteLine($"部门ID {item.DepartmentId} 的总薪资:{item.TotalSalary}");
}

方法链写法(更简洁)

如果习惯用LINQ的方法链风格,也可以直接在GroupBy之后链式调用Select来完成求和:

var group3 = ie.GroupBy(e => e.Department_id)
               .Select(g => new { DepartmentId = g.Key, TotalSalary = g.Sum(x => x.Salary) });

连输出都省掉的写法

要是你根本不需要保存分组求和的结果,只想直接输出,还可以把输出逻辑也嵌进去,彻底告别foreach:

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

内容的提问来源于stack exchange,提问作者Troskyvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:56:16