class ExpenseClaim
{
int EmployeeId;
int Team;
double Cost;
}
List<EmployeeExpense> GetEmployeeExpenses()
{
return _expenseClaims // `_expenseClaims` is `List<ExpenseClaim>`
.GroupBy(e => e.EmployeeId)
.Select(x =>
new EmployeeExpense(
x.Key,
// TODO: employee team?
x.Sum(e => e.Cost)
);
}
请原谅这个颇为人为的例子。Linq GroupBy和多列
如何获得GetEmployeeExpenses
的员工团队?我假设我需要第二组,但我无法弄清楚语法。
请注意,对于给定的员工,他们的Team
将总是相同的,所以我很乐意拿Team
,例如按记录分组的第一个。
所以......
ExpenseClaim { EmployeeId = 1, Team = Sales, Cost = 100 }
ExpenseClaim { EmployeeId = 1, Team = Sales, Cost = 50 }
=>
EmployeeExpense { EmployeeId = 1, Team = Sales, Cost = 150 }
+1很好的回答指出,他可以使用他的问题“首先”。 – 2010-12-14 13:13:26
谢谢你,优秀的答案 – fearofawhackplanet 2010-12-14 13:15:23