Dictionary(Of TKey, TValue) Constructor (IDictionary(Of TKey, TValue), IEqualityComparer(Of TKey))
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Initializes a new instance of the Dictionary(Of TKey, TValue) class that contains elements copied from the specified IDictionary(Of TKey, TValue) and uses the specified IEqualityComparer(Of T).
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Sub New ( _ dictionary As IDictionary(Of TKey, TValue), _ comparer As IEqualityComparer(Of TKey) _ )
Parameters
- dictionary
- Type: System.Collections.Generic.IDictionary(Of TKey, TValue)
The IDictionary(Of TKey, TValue) whose elements are copied to the new Dictionary(Of TKey, TValue).
- comparer
- Type: System.Collections.Generic.IEqualityComparer(Of TKey)
The IEqualityComparer(Of T) implementation to use when comparing keys, or Nothing to use the default EqualityComparer(Of T) for the type of the key.
| Exception | Condition |
|---|---|
| ArgumentNullException | dictionary is Nothing. |
| ArgumentException | dictionary contains one or more duplicate keys. |
Use this constructor with the case-insensitive string comparers provided by the StringComparer class to create dictionaries with case-insensitive string keys.
Every key in a Dictionary(Of TKey, TValue) must be unique according to the specified comparer; likewise, every key in the source dictionary must also be unique according to the specified comparer.
Note: |
|---|
For example, duplicate keys can occur if comparer is one of the case-insensitive string comparers provided by the StringComparer class and dictionary does not use a case-insensitive comparer key. |
The initial capacity of the new Dictionary(Of TKey, TValue) is large enough to contain all the elements in dictionary.
Dictionary(Of TKey, TValue) requires an equality implementation to determine whether keys are equal. If comparer is Nothing, this constructor uses the default generic equality comparer, EqualityComparer(Of T).Default. If type TKey implements the System.IEquatable(Of T) generic interface, the default equality comparer uses that implementation.
This constructor is an O(n) operation, where n is the number of elements in dictionary.
Note: