有没有办法按排序顺序迭代字典,按VALUE而非按键排序? 我确实阅读了“SortedDictionary”对象,但遗憾的是,它是按键排序的。 一个解决方案是让我用我的值翻转我的所有键,并将它们放入SortedDictionary(因为它们都是整数) - 但是,我不完全确定如何使用那个。
答案 0 :(得分:19)
获取键/值对,排序和迭代。使用LINQ很容易死:
foreach(var pair in dictionary.OrderBy(p => p.Value)) {
// work with pair.Key and pair.Value
}
答案 1 :(得分:0)
完成后,上面建议的代码(dictionary.OrderBy(p => p.Value))“将不适用于自定义类型。
OrderBy使用IComparable来比较两个对象。如果字典中的值是自定义类型,则必须实现IComparable才能以正确的方式对值进行排序。
继续阅读here。
答案 2 :(得分:0)
//按值排序字典
foreach (KeyValuePair<datatype, datatype> item in dictionary)
{
//do something by value....accessing item.value
}