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.
Assembly: System (in System.dll)
public:
SortedDictionary(
IDictionary<TKey, TValue>^ dictionary,
IComparer<TKey>^ comparer
)
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.
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