如何从c#中获取List中元素的频率

Huz*_*ifa 1 c# list frequency

我试图获取存储在列表中的元素的频率.

我将以下ID存储在我的列表中

ID
1
2
1
3
3
4
4
4
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

ID| Count
1 | 2
2 | 1
3 | 2
4 | 3
Run Code Online (Sandbox Code Playgroud)

在java中,您可以执行以下方法.

for (String temp : hashset) 
    {
    System.out.println(temp + ": " + Collections.frequency(list, temp));
    }
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.mkyong.com/java/how-to-count-duplicated-items-in-java-list/

如何获取c#中列表的频率计数?

谢谢.

key*_*rdP 11

您可以使用LINQ

var frequency = myList.GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count());
Run Code Online (Sandbox Code Playgroud)

这将创建一个Dictionary对象,其中键是,ID并且值是ID出现的次数.


Lee*_*Lee 7

using System.Linq;

List<int> ids = //

foreach(var grp in ids.GroupBy(i => i))
{
    Console.WriteLine("{0} : {1}", grp.Key, grp.Count());
}
Run Code Online (Sandbox Code Playgroud)