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.
Assembly: System (in System.dll)
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
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