C#List Group By with where

时间:2016-05-09 13:21:30

标签: c# group-by

您好我正在尝试按我的C#列表进行分组。 这就是它的外观。

Name    User    
Fred    true    
Fred    false   
Fred    true    
Joe     true    
Joe     true    
Max     false   
Max     true    

结果:

enter image description here

这就是我想在Group By之后的样子,我怎么能在C#中做到这一点?

1 个答案:

答案 0 :(得分:6)

您可以按名称分组,然后将Enumerable.Count与谓词一起使用:

var result = list
   .GroupBy(x => x.Name)
   .Select(g => new 
   { 
       Name = g.Key, 
       True = g.Count(x => x.User == true),
       False = g.Count(x => x.User == false)
   });