如何获取c#中重复的值的计数

Pa1*_*Pa1 0 c# linq lambda

我想找到使用linq查询重复的整数.例如,我的清单包括

var array = new int[]{1,1,1,2,2,2,2,3,3,9,9,16,16};

现在我想查询像我想的计数13 计数24 计数32 计数92 计数162

我如何在c#中使用linq来做到这一点.希望你理解我的问题.

Dav*_*ish 13

使用LINQ很容易 GroupBy

var numbers = new int[] { 1, 1, 1, 2, 2, 2, 2, 3, 3, 9, 9, 16, 16 }; 

var counts = numbers
    .GroupBy(item => item)
    .Select(grp => new { Number = grp.Key, Count = grp.Count() });
Run Code Online (Sandbox Code Playgroud)

结果:

Number    Count
1         3 
2         4 
3         2 
9         2 
16        2 
Run Code Online (Sandbox Code Playgroud)