我有
的样本数据IEnumerable<Employee> ie;
员工在其中包含“姓名,工资,部门编号”的地方
我可以使用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
该语句如何写?谢谢。
答案 0 :(得分:3)
var results = ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary));
foreach (var item in result)
{
Console.WriteLine(result);
}
OR
ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary))
.ToList().ForEach(x => Console.WriteLine(x));