如何 sort/select 哈希表中的最高值?

How to sort/select top values from Hashtable?

我有一个 Hashtable,内容如下:

jak: 1
dsf: 1
usd: 1
idb: 1
bla: 3
sdd: 1
asd: 2
bsd: 1

我想要 select 前 10 对 按价值。在这个例子中它会是这样的:

bla: 3
asd: 2

等我该怎么做?

如果您将代码换成使用字典,它将看起来像:

var top10 = dict.OrderByDescending(kvp => kvp.Value).Take(10);

您可以枚举top10,这将是一个KeyValuePair序列,并打印它们的Key和Value属性

顺便说一句,您仍然可以使用哈希表来完成(gunr 的评论有点暗示您不能使用 LINQ)并且您可以让 LINQ 强制转换所有条目以使其更易于使用:

hashtable.Cast<DictionaryEntry>().OrderByDescending(de => (int)de.Value).Take(10)