我有一个字符串,整数的字典,所以键是字符串,值是整数,我想按整数值的升序对键进行排序。我怎么能做到这一点?
最佳答案
您可以使用 LINQ对 Dictionary
进行排序按值(value):
Dim dictionary = New Dictionary(Of String, Integer)()
dictionary.Add("A", 2)
dictionary.Add("B", 4)
dictionary.Add("C", 5)
dictionary.Add("D", 3)
dictionary.Add("E", 1)
Dim sorted = From pair In dictionary
Order By pair.Value
Dim sortedDictionary = sorted.ToDictionary(Function(p) p.Key, Function(p) p.Value)
实际上它不会修改原始字典,而是使用新顺序创建一个新字典。
但是 : 除了可行性,还有
Dictionary
不是 IList
(作为数组或 List<T>
)。它的目的是非常有效地查找键而不是循环所有条目。它们是无序的,这意味着尽管您可以使用 foreach 循环以某种顺序检索元素,但该顺序没有特殊意义,并且可能会无缘无故地更改。
关于VB.Net 按整数值排序字典(字符串,整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421515/