SortedDictionary<'TKey, 'TValue> Constructor (IDictionary<'TKey, 'TValue>, IComparer<'TKey>)

 

Initializes a new instance of the SortedDictionary<'TKey, 'TValue> class that contains elements copied from the specified IDictionary<'TKey, 'TValue> and uses the specified IComparer<'T> implementation to compare keys.

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

new : 
        dictionary:IDictionary<'TKey, 'TValue> *
        comparer:IComparer<'TKey> -> SortedDictionary

Parameters

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

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

comparer
Type: System.Collections.Generic.IComparer<'TKey>

The IComparer<'T> implementation to use when comparing keys, or null to use the default Comparer<'T> for the type of the key.

Exception Condition
ArgumentNullException

dictionary is null.

ArgumentException

dictionary contains one or more duplicate keys.

Every key in a SortedDictionary<'TKey, 'TValue> must be unique according to the specified comparer; therefore, every key in the source dictionary must also be unique according to the specified comparer.

SortedDictionary<'TKey, 'TValue> requires a comparer implementation to perform key comparisons. If comparer is null, this constructor uses the default generic equality comparer, Comparer<'T>.Default. If type TKey implements the System.IComparable<'T> generic interface, the default comparer uses that implementation.

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<'TKey, 'TValue> to create a case-insensitive sorted copy of the information in a case-insensitive Dictionary<'TKey, 'TValue>, by passing the Dictionary<'TKey, 'TValue> to the SortedDictionary<'TKey, 'TValue>(IDictionary<'TKey, 'TValue>, IComparer<'TKey>) constructor. In this example, the case-insensitive comparers are for the current culture.

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
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top
Show: