SortedList<TKey, TValue> Constructor (IDictionary<TKey, TValue>^)
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 default 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>.
| 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 default comparer; likewise, every key in the source dictionary must also be unique according to the default 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.
This constructor uses the default comparer for TKey. To specify a comparer, use the SortedList<TKey, TValue>(IDictionary<TKey, TValue>^, IComparer<TKey>^) constructor. The default comparer Comparer<T>::Default checks whether the key type TKey implements System::IComparable<T> and uses that implementation, if available. If not, Comparer<T>::Default checks whether the key type TKey implements System::IComparable. If the key type TKey does not implement either interface, you can specify a System.Collections.Generic::IComparer<T> implementation in a constructor overload that accepts a comparer parameter.
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 sorted copy of the information in a Dictionary<TKey, TValue>, by passing the Dictionary<TKey, TValue> to the SortedList<TKey, TValue>(IDictionary<TKey, TValue>^) constructor.
Available since 10
.NET Framework
Available since 2.0