VB.NET Convert Dictionary to ListConvert a Dictionary to a List. Use the ToList Function and the KeyValuePair type.
dot net perls

Convert Dictionary, List. A Dictionary can be converted to a List. It can be represented as a List of KeyValuePairs. The ToList Function is useful here. With this sample program, we demonstrate this conversion in the VB.NET language.

Example. Let's create a Dictionary instance and set four different keys equal to four different values. Next, the ToList extension method can be used. Please note this method is not available in older versions of the .NET Framework.

Then We can loop over each KeyValuePair in the List instance with a For-Each loop construct.


For Each, For

VB.NET program that converts Dictionary to List
Module Module1 Sub Main() ' Example dictionary. Dim dict As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)() dict("cat") = 1 dict("dog") = 2 dict("mouse") = 3 dict("palomino") = 4 ' Call ToList on it. ' ... Use KeyValuePair list. Dim list As List(Of KeyValuePair(Of String, Integer)) = dict.ToList ' We can loop over each KeyValuePair. For Each pair As KeyValuePair(Of String, Integer) In list Console.WriteLine(pair.Key) Console.Write(" ") Console.WriteLine(pair.Value) Next End Sub End Module
cat 1 dog 2 mouse 3 palomino 4

Discussion. We consider why this conversion is helpful. Why would a programmer want to convert a Dictionary into a List? First, looping over every element in a List is much faster than looping over all the pairs in a Dictionary.

And Second, Lists will use less memory because no internal buckets array is necessary.


On the other hand, Dictionary provides faster lookup and element removal. In most performance-sensitive programs, Dictionary is a better choice. Sometimes, you can use parallel collections and use the faster one as needed.


Summary. Here we converted a Dictionary instance into a List instance. A List of KeyValuePairs can always represent the data inside a Dictionary. The main difference between these two representations is in the area of performance.

© 2007-2021 sam allen. send bug reports to info@dotnetperls.com.