SortedList<TKey, TValue> Constructor (IDictionary<TKey, TValue>^, IComparer<TKey>^)
Initializes a new instance of the SortedList<TKey, TValue> class that contains elements copied from the specified IDictionary<TKey, TValue>, has sufficient capacity to accommodate the number of elements copied, and uses the specified IComparer<T>.
Assembly: System (in System.dll)
Parameters
- dictionary
-
Type:
System.Collections.Generic::IDictionary<TKey, TValue>^
The IDictionary<TKey, TValue> whose elements are copied to the new SortedList<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 SortedList<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.
The capacity of the new SortedList<TKey, TValue> is set to the number of elements in dictionary, so no resizing takes place while the list is being populated.
If the data in dictionary are sorted, this constructor is an O(n) operation, where n is the number of elements in dictionary. Otherwise it is an O(n*n) operation.
The following code example shows how to use SortedList<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 SortedList<TKey, TValue>(IDictionary<TKey, TValue>^, IComparer<TKey>^) constructor. In this example, the case-insensitive comparers are for the current culture.
Available since 10
.NET Framework
Available since 2.0