使用List<T>的Linq查询

4

我有一个列表 List<Employee>,其中包含如下数据

Name   Year  Salary

John   2001   10000
Warn   2001   11000
George 2001   12000
Nick   2001   13000
Warn   2002   14000
John   2002   15000
Adam   2002   16000
Kile   2003   17000
John   2003   18000
Kile   2004   19000
Warn   2004   20000

我需要转换成这样
    Year  John   Warn   George   Nick    Adam   Kile
----------------------------------------------------------
    2001  10000  11000  12000    13000   0      0
    2002  15000  14000  0        0       16000  0
    2003  18000  0      0        0       0      17000
    2004  0      20000  0        0       0      19000

用LINQ能做到吗?

1
可能是Pivot data using LINQ的重复问题。 - Oded
你真的想要一个带有像 decimal John 这样的属性的事物列表吗?你有为此准备好的类型吗? - H H
2个回答

2

您是否需要使用GroupBy()函数?

employees.GroupBy(x => x.Year);

2
var annualGroups = 
        from e in List<Employee> 
        group e by e.Year into y 
        select new { Year = y.Key, Employees = y };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接