
You want to sort a Dictionary of string type keys in the VB.NET programming language, such that you can loop over the string keys in alphabetical order, regardless of the order in which they were added. While the Dictionary data itself cannot be sorted directly, you can obtain the Keys and sort them, and then loop over that.
Initially here, we look at the VB.NET programming language source text that adds five key and value pairs to a Dictionary(Of String, Integer). Then, we acquire the list of strings, using the ToList extension method on the Keys property. Then, we invoke the Sort instance method on the keys collection. Next, we use the for each loop construct to loop over the List collection, and do lookups for all values.
Program that sorts string keys in Dictionary [VB.NET]
Module Module1
Sub Main()
' Create Dictionary with string keys.
Dim dict As New Dictionary(Of String, Integer)
dict.Add("dog", 0)
dict.Add("cat", 1)
dict.Add("mouse", 5)
dict.Add("eel", 3)
dict.Add("programmer", 2)
' Get list of keys.
Dim keys As List(Of String) = dict.Keys.ToList
' Sort the keys.
keys.Sort()
' Loop over the sorted keys.
Dim str As String
For Each str In keys
Console.WriteLine("{0} -> {1}", str, dict.Item(str))
Next
End Sub
End Module
Output
cat -> 1
dog -> 0
eel -> 3
mouse -> 5
programmer -> 2
Sort method used. In the .NET Framework, the Sort method on the List type is implemented with a Quick Sort algorithm, making it very efficient on strings. Please note how the string "cat" was added second in the source code, but is ordered first in the alphabetical printout, establishing the program's correctness here.
In this example, we saw how you can sort the keys in a Dictionary collection using the Keys property to acquire the KeyCollection, and then the ToList and Sort methods to manipulate the elements. While the Dictionary internals themselves cannot be sorted or reordered, the collections you can obtain from the Dictionary can be sorted, and this enables a greater degree of opportunity for programmatic conversions.
Dictionary Examples VB.NET Tutorials