使用Linq分组拼合列表

时间:2015-12-22 16:33:54

标签: c# asp.net linq list

假设我有以下扁平数据列表:

类别用户名类型百分比等级
   用户A A1 80 A
   B UserA A2 95 B
   A UserB A2 70 C
   C用户B A2 70 C

如何将数据分组到此表单中?

用户名类别A类别B类别C等级类型
UserA 80 95 - A A1
UserB 80 95 - A A2

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

也许从这样的事情开始,它显然是不完整的,因为你想要的结果与初始数据不一致

list.GroupBy(i => i.UserName)
   .Select(i => new {
         UserName = i.Key,
         CategoryA = i.FirstOrDefault(x => x.Grade == "A").Percent,
         CategoryB = i.FirstOrDefault(x => x.Grade == "B").Percent,
         CategoryC = i.FirstOrDefault(x => x.Grade == "C").Percent,
         // ...
      });