C#List Group By with where

Man*_*mba 3 c# group-by

嗨,我正在尝试按照我的C#列表进行分组.这是它的外观.

Name    User    
Fred    true    
Fred    false   
Fred    true    
Joe     true    
Joe     true    
Max     false   
Max     true    
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

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

Tim*_*ter 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)
   });
Run Code Online (Sandbox Code Playgroud)