Dictionary<'TKey, 'TValue> Constructor (IDictionary<'TKey, 'TValue>)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Initializes a new instance of the Dictionary<'TKey, 'TValue> class that contains elements copied from the specified IDictionary<'TKey, 'TValue> and uses the default equality comparer for the key type.

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

new : 
        dictionary:IDictionary<'TKey, 'TValue> -> Dictionary


Type: System.Collections.Generic.IDictionary<'TKey, 'TValue>

The IDictionary<'TKey, 'TValue> whose elements are copied to the new Dictionary<'TKey, 'TValue>.

Exception Condition

dictionary is null.


dictionary contains one or more duplicate keys.

Every key in a Dictionary<'TKey, 'TValue> must be unique according to the default equality comparer; likewise, every key in the source dictionary must also be unique according to the default equality comparer.

The initial capacity of the new Dictionary<'TKey, 'TValue> is large enough to contain all the elements in dictionary.

Dictionary<'TKey, 'TValue> requires an equality implementation to determine whether keys are equal. This constructor uses the default generic equality comparer, EqualityComparer<'T>.Default. If type TKey implements the System.IEquatable<'T> generic interface, the default equality comparer uses that implementation. Alternatively, you can specify an implementation of the IEqualityComparer<'T> generic interface by using a constructor that accepts a comparer parameter.

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

The following code example shows how to use the Dictionary<'TKey, 'TValue>(IEqualityComparer<'TKey>) constructor to initialize a Dictionary<'TKey, 'TValue> with sorted content from another dictionary. The code example creates a SortedDictionary<'TKey, 'TValue> and populates it with data in random order, then passes the SortedDictionary<'TKey, 'TValue> to the Dictionary<'TKey, 'TValue>(IEqualityComparer<'TKey>) constructor, creating a Dictionary<'TKey, 'TValue> that is sorted. This is useful if you need to build a sorted dictionary that at some point becomes static; copying the data from a SortedDictionary<'TKey, 'TValue> to a Dictionary<'TKey, 'TValue> improves retrieval speed.

No code example is currently available or this language may not be supported.

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