计算列表的每个不同值的出现次数

Cat*_*san 1 c#

好的,我基本上创建了一些算法来分解数字,并将所述因子存储在一个列表中.

因此,对于像24这样的数字,因子列表将如下所示:

l = {2,2,2,3}

由于我正在使用非常大的数字,我需要一种方法来有效地查找列表中每个不同值出现的次数.在这个基本例子中,2次发生3次,3次发生1次.

是否有C#List <>功能可以为我做到这一点?

Kam*_*ski 6

试试这个:

var counts = list.GroupBy(x => x).ToDictionary(g => g.Key, g => g.Count());
Run Code Online (Sandbox Code Playgroud)

它将生成带有数字和计数的字典

  • 但是,这始终会创建一个新的字典.因此,如果您在每个新数字上使用该代码,那么它将非常低效.@CataVisan:编辑我的答案,使用字典显示不同的方法. (2认同)