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>.

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

public SortedList(
	IDictionary<TKey, TValue> dictionary
)

Parameters

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

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

ExceptionCondition
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.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new Dictionary of strings, with string keys. 
        //
        Dictionary<string, string> openWith = 
                                  new Dictionary<string, string>();

        // Add some elements to the dictionary. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // Create a SortedList of strings with string keys,  
        // and initialize it with the contents of the Dictionary.
        SortedList<string, string> copy = 
                  new SortedList<string, string>(openWith);

        // List the contents of the copy.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in copy )
        {
            Console.WriteLine("Key = {0}, Value = {1}", 
               kvp.Key, kvp.Value);
        }
    }
}

/* This code example produces the following output:

Key = bmp, Value = paint.exe
Key = dib, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
 */

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft