我有一个单词列表,我想计算每个单词,然后选择按降序排列的单词数排序的前1000。是否有任何快速的方法来执行此任务。谢谢大家。
for (int j = 0; j < tokens.Length; j++)
{
if (!yy.ContainsKey(tokens[j]))
yy.Add(tokens[j], 1);
else
yy[tokens[j]]++;
}
我想用List更改字典。
答案 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);