0

我有一个单词列表,我想计算每个单词,然后选择按单词出现次数降序排列的前 1000 个单词。有什么快速的方法来执行这项任务。谢谢大家。

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

 }

我想用列表更改字典。

4

2 回答 2

4

您可以使用 LINQ 来做到这一点:

var query = words.GroupBy(word => word)
                 .OrderByDescending(g => g.Count())
                 .Select(g => g.Key)
                 .Take(1000);
于 2012-05-05T16:07:06.620 回答
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);
于 2012-05-05T16:07:00.297 回答