fea*_*net 3 c# linq linq-to-objects group-by
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)
);
}
Run Code Online (Sandbox Code Playgroud)
请原谅相当人为的例子.
如何让员工团队进入GetEmployeeExpenses
?我假设我需要第二组,但我无法解决语法问题.
请注意,对于给定的员工,Team
无论如何他们总是相同,所以我很乐意采用Team
例如第一个按记录分组的.
所以...
ExpenseClaim { EmployeeId = 1, Team = Sales, Cost = 100 }
ExpenseClaim { EmployeeId = 1, Team = Sales, Cost = 50 }
=>
EmployeeExpense { EmployeeId = 1, Team = Sales, Cost = 150 }
Run Code Online (Sandbox Code Playgroud)
在您的特定情况下,您可以x.First().Team
在Select中使用以获取您的团队信息.
对于实际需要在多个字段上进行分组的其他情况,您可以对匿名类型进行分组.如
someQuery.GroupBy(f => new { f.Foo, f.Bar }).Select(...);
归档时间: |
|
查看次数: |
6102 次 |
最近记录: |