使用LINQ或lambda表达式获取该值的值和计数

Use*_*MVC 6 .net c# linq lambda

以下格式的数据对象列表

Col1  Col2  Col3

B     45    36    
B     12    69   
A     46    76    
C     89    09    
B     451   37   
D     435   46   
A     450   50   
D     98    43   
B     358   39
A     987   89
Run Code Online (Sandbox Code Playgroud)

需要获得如下格式的结果集('A'发生3次,'B'发生4次等)

Value  Count

A      3   
B      4  
C      1    
D      2
Run Code Online (Sandbox Code Playgroud)

如何使用LINQ或lambda表达式获得如上所述的结果集?

Asi*_*taq 8

您可以使用GroupBy.

var groupedlist = list.GroupBy(c => c.Col1)
                      .Select((key, c) => new {Value = key, Count = c.Count()});
Run Code Online (Sandbox Code Playgroud)


Yog*_*pta 7

你可以通过lambda表达式实现它

var list = from x in dataObjects
           group x by x.Col1 into g
           select new { Value = g.Key, Count = g.Count() };
Run Code Online (Sandbox Code Playgroud)

并通过GroupBy@Asif回答使用Linq Extension方法


May*_*ank 6

var dictionary = list.GroupBy(str => str.Col1)
    .ToDictionary(group => group.Key, group => group.Count());
Run Code Online (Sandbox Code Playgroud)

从这里