我经常需要对一个字典(包含键和值)按值进行排序。例如,我有一个单词和相应频率的哈希表,我想按频率排序。
有一个SortedList
适用于单个值(比如频率),我想将其映射回单词。
SortedDictionary按键而不是值进行排序。一些人会使用自定义类,但是否有更简洁的方法呢?
我经常需要对一个字典(包含键和值)按值进行排序。例如,我有一个单词和相应频率的哈希表,我想按频率排序。
有一个SortedList
适用于单个值(比如频率),我想将其映射回单词。
SortedDictionary按键而不是值进行排序。一些人会使用自定义类,但是否有更简洁的方法呢?
您可以按值对字典进行排序,并使用以下代码在字典中获取结果:
Dictionary <<string, string>> ShareUserNewCopy =
ShareUserCopy.OrderBy(x => x.Value).ToDictionary(pair => pair.Key,
pair => pair.Value);
假设你有一个字典,你可以使用下面的一行代码直接按值对它们进行排序:
var x = (from c in dict orderby c.Value.Order ascending select c).ToDictionary(c => c.Key, c=>c.Value);
IComparer
来完成此操作(确实它接受要比较的键,但是有了键,您就可以获取值)。;-) - BrainSlugs83ElementAt(int index)
方法。此外,你还可以使用foreach
循环来按索引迭代。 - Barreto