获取列表中的项目计数c#

时间:2012-05-05 16:00:03

标签: c# c#-4.0

我有一个单词列表,我想计算每个单词,然后选择按降序排列的单词数排序的前1000。是否有任何快速的方法来执行此任务。谢谢大家。

for (int j = 0; j < tokens.Length; j++)
{
  if (!yy.ContainsKey(tokens[j]))
                    yy.Add(tokens[j], 1);
                else
                    yy[tokens[j]]++;

 }

我想用List更改字典。

2 个答案:

答案 0 :(得分:4)

您可以使用LINQ:

来完成
var query = words.GroupBy(word => word)
                 .OrderByDescending(g => g.Count())
                 .Select(g => g.Key)
                 .Take(1000);

答案 1 :(得分:1)

List<string> yourList = ... 

var top1000 = yourList.GroupBy(s => s).Select(g => new { Value = g.Key, Count = g.Count() })
                      .OrderByDescending(p => p.Count).Take(1000);