SortedDictionary(Of TKey, TValue) Constructor (IDictionary(Of TKey, TValue))

 

Initializes a new instance of the SortedDictionary(Of TKey, TValue) class that contains elements copied from the specified IDictionary(Of TKey, TValue) and uses the default IComparer(Of T) implementation for the key type.

Namespace:   System.Collections.Generic
Assembly:  System (in System.dll)

Public Sub New (
	dictionary As IDictionary(Of TKey, TValue)
)

Parameters

dictionary
Type: System.Collections.Generic.IDictionary(Of TKey, TValue)

The IDictionary(Of TKey, TValue) whose elements are copied to the new SortedDictionary(Of TKey, TValue).

Exception Condition
ArgumentNullException

dictionary is null.

ArgumentException

dictionary contains one or more duplicate keys.

Every key in a SortedDictionary(Of TKey, TValue) must be unique according to the default comparer; therefore, every key in the source dictionary must also be unique according to the default comparer.

SortedDictionary(Of TKey, TValue) requires a comparer implementation to perform key comparisons. This constructor uses the default generic equality comparer, Comparer(Of T).Default. If type TKey implements the System.IComparable(Of T) generic interface, the default comparer uses that implementation. Alternatively, you can specify an implementation of the IComparer(Of T) generic interface by using a constructor that accepts a comparer parameter.

This constructor is an O(n log n) operation, where n is the number of elements in dictionary.

The following code example shows how to use SortedDictionary(Of TKey, TValue) to create a sorted copy of the information in a Dictionary(Of TKey, TValue), by passing the Dictionary(Of TKey, TValue) to the SortedDictionary(Of TKey, TValue)(IComparer(Of TKey)) constructor.

Imports System
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main() 

        ' Create a new Dictionary of strings, with string 
        ' keys.
        Dim openWith As New Dictionary(Of String, String)

        ' Add some elements to the dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("dib", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")

        ' Create a SortedDictionary of strings with string keys, 
        ' and initialize it with the contents of the Dictionary.
        Dim copy As New SortedDictionary(Of String, String)(openWith)

        ' List the sorted contents of the copy.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In copy
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'Key = bmp, Value = paint.exe
'Key = dib, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top
Show: