SortedList<TKey,TValue> コンストラクター

定義

SortedList<TKey,TValue> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class.

オーバーロード

SortedList<TKey,TValue>()

空で、既定の初期量を備え、既定の SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the default initial capacity, and uses the default IComparer<T>.

SortedList<TKey,TValue>(IComparer<TKey>)

空で、既定の初期量を備え、指定した SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the default initial capacity, and uses the specified IComparer<T>.

SortedList<TKey,TValue>(IDictionary<TKey,TValue>)

指定した SortedList<TKey,TValue> からコピーした要素を格納し、コピーした要素の数を格納できるだけの容量を備え、既定の IDictionary<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。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>.

SortedList<TKey,TValue>(Int32)

空で、指定した初期量を備え、既定の SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the specified initial capacity, and uses the default IComparer<T>.

SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>)

指定した SortedList<TKey,TValue> からコピーした要素を格納し、コピーした要素の数を格納できるだけの容量を備え、指定した IDictionary<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。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>.

SortedList<TKey,TValue>(Int32, IComparer<TKey>)

空で、指定した初期量を備え、指定した SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the specified initial capacity, and uses the specified IComparer<T>.

SortedList<TKey,TValue>()

空で、既定の初期量を備え、既定の SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the default initial capacity, and uses the default IComparer<T>.

public:
 SortedList();
public SortedList ();
Public Sub New ()

次のコード例は、TKey型としてstring、TValue型としてstringを持つSortedList<TKey,TValue>型の空のインスタンスを生成して、Addメソッドを使っていくつかの要素を追加しますThe following code example creates an empty SortedList<TKey,TValue> of strings with string keys and uses the Add method to add some elements. 例では重複するキーを追加しようとしたとき、Addメソッドが、例外ArgumentExceptionを投げることを示しています。The example demonstrates that the Add method throws an ArgumentException when attempting to add a duplicate key.

このコード例は、 SortedList<TKey,TValue>クラスに対して提供される大規模な例の一部です。This code example is part of a larger example provided for the SortedList<TKey,TValue> class.

// Create a new sorted list of strings, with string
// keys.
SortedList<String^, String^>^ openWith =
    gcnew SortedList<String^, String^>();

// Add some elements to the list. There are no 
// duplicate keys, but some of the values are duplicates.
openWith->Add("txt", "notepad.exe");
openWith->Add("bmp", "paint.exe");
openWith->Add("dib", "paint.exe");
openWith->Add("rtf", "wordpad.exe");

// The Add method throws an exception if the new key is
// already in the list.
try
{
    openWith->Add("txt", "winword.exe");
}
catch (ArgumentException^)
{
    Console::WriteLine("An element with Key = \"txt\" already exists.");
}
// Create a new sorted list of strings, with string
// keys.
SortedList<string, string> openWith = 
    new SortedList<string, string>();

// Add some elements to the list. There are no 
// duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");

// The Add method throws an exception if the new key is 
// already in the list.
try
{
    openWith.Add("txt", "winword.exe");
}
catch (ArgumentException)
{
    Console.WriteLine("An element with Key = \"txt\" already exists.");
}
' Create a new sorted list of strings, with string 
' keys. 
Dim openWith As New SortedList(Of String, String)

' Add some elements to the list. There are no 
' duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("dib", "paint.exe")
openWith.Add("rtf", "wordpad.exe")

' The Add method throws an exception if the new key is 
' already in the list.
Try
    openWith.Add("txt", "winword.exe")
Catch 
    Console.WriteLine("An element with Key = ""txt"" already exists.")
End Try

注釈

内のSortedList<TKey,TValue>すべてのキーは、既定の比較子に従って一意である必要があります。Every key in a SortedList<TKey,TValue> must be unique according to the default comparer.

このコンストラクターは、 SortedList<TKey,TValue>の初期容量に既定値を使用します。This constructor uses the default value for the initial capacity of the SortedList<TKey,TValue>. 初期量を設定するには、 SortedList<TKey,TValue>(Int32)コンストラクターを使用します。To set the initial capacity, use the SortedList<TKey,TValue>(Int32) constructor. コレクションの最終的なサイズを推定できる場合、初期容量を指定すると、 SortedList<TKey,TValue>に要素を追加するときに、さまざまなサイズ変更操作を実行する必要がなくなります。If the final size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the SortedList<TKey,TValue>.

このコンストラクターは、のTKey既定の比較子を使用します。This constructor uses the default comparer for TKey. 比較子を指定するにはSortedList<TKey,TValue>(IComparer<TKey>) 、コンストラクターを使用します。To specify a comparer, use the SortedList<TKey,TValue>(IComparer<TKey>) constructor. 既定の比較Comparer<T>.Default子は、キーのTKeySystem.IComparable<T>がを実装しているかどうかを確認し、使用可能な場合はその実装を使用します。The default comparer Comparer<T>.Default checks whether the key type TKey implements System.IComparable<T> and uses that implementation, if available. それ以外のComparer<T>.Default場合は、キーのTKeySystem.IComparableがを実装しているかどうかを確認します。If not, Comparer<T>.Default checks whether the key type TKey implements System.IComparable. キーの型TKeyがどちらのインターフェイスも実装していない場合System.Collections.Generic.IComparer<T>は、パラメーターをcomparer受け取るコンストラクターのオーバーロードで実装を指定できます。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.

このコンストラクターは O (1) 操作です。This constructor is an O(1) operation.

こちらもご覧ください

SortedList<TKey,TValue>(IComparer<TKey>)

空で、既定の初期量を備え、指定した SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the default initial capacity, and uses the specified IComparer<T>.

public:
 SortedList(System::Collections::Generic::IComparer<TKey> ^ comparer);
public SortedList (System.Collections.Generic.IComparer<TKey> comparer);
new System.Collections.Generic.SortedList<'Key, 'Value> : System.Collections.Generic.IComparer<'Key> -> System.Collections.Generic.SortedList<'Key, 'Value>
Public Sub New (comparer As IComparer(Of TKey))

パラメーター

comparer
IComparer<TKey>

キーの比較時に使用する IComparer<T> の実装。The IComparer<T> implementation to use when comparing keys.

- または --or- キーの型に既定の Comparer<T> を使用する場合は nullnull to use the default Comparer<T> for the type of the key.

次のコード例では、現在のカルチャに対して大文字と小文字を区別しない比較子を使用して並べ替えられたリストを作成します。The following code example creates a sorted list with a case-insensitive comparer for the current culture. この例では、4つの要素 (小文字のキーを持つ要素と、大文字のキーを持つ要素) を追加します。The example adds four elements, some with lower-case keys and some with upper-case keys. 次に、既存のキーと異なるキーを使用して要素を追加しようとします。この場合、大文字小文字の区別のみが発生し、結果として得られる例外をキャッチして、エラーメッセージを表示します。The example then attempts to add an element with a key that differs from an existing key only by case, catches the resulting exception, and displays an error message. 最後に、この例では、大文字と小文字を区別しない並べ替え順序で要素を表示します。Finally, the example displays the elements in case-insensitive sort order.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new sorted list of strings, with string keys and
        // a case-insensitive comparer for the current culture.
        SortedList<string, string> openWith = 
                      new SortedList<string, string>( 
                          StringComparer.CurrentCultureIgnoreCase);
        
        // Add some elements to the list. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("DIB", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // Try to add a fifth element with a key that is the same 
        // except for case; this would be allowed with the default
        // comparer.
        try
        {
            openWith.Add("BMP", "paint.exe");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("\nBMP is already in the sorted list.");
        }
        
        // List the contents of the sorted list.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, 
                kvp.Value);
        }
    }
}

/* This code example produces the following output:

BMP is already in the sorted list.

Key = bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
 */
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new sorted list of strings, with string keys and
        ' a case-insensitive comparer for the current culture.
        Dim openWith As New SortedList(Of String, String)( _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' Add some elements to the list. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("DIB", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")

        ' Try to add a fifth element with a key that is the same 
        ' except for case; this would be allowed with the default
        ' comparer.
        Try
            openWith.Add("BMP", "paint.exe")
        Catch ex As ArgumentException
            Console.WriteLine(vbLf & "BMP is already in the sorted list.")
        End Try
        
        ' List the contents of the sorted list.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'BMP is already in the sorted list.
'
'Key = bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe

注釈

内のSortedList<TKey,TValue>すべてのキーは、指定された比較子に従って一意である必要があります。Every key in a SortedList<TKey,TValue> must be unique according to the specified comparer.

このコンストラクターは、 SortedList<TKey,TValue>の初期容量に既定値を使用します。This constructor uses the default value for the initial capacity of the SortedList<TKey,TValue>. 初期量を設定するには、 SortedList<TKey,TValue>(Int32, IComparer<TKey>)コンストラクターを使用します。To set the initial capacity, use the SortedList<TKey,TValue>(Int32, IComparer<TKey>) constructor. コレクションの最終的なサイズを推定できる場合、初期容量を指定すると、 SortedList<TKey,TValue>に要素を追加するときに、さまざまなサイズ変更操作を実行する必要がなくなります。If the final size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the SortedList<TKey,TValue>.

このコンストラクターは O (1) 操作です。This constructor is an O(1) operation.

こちらもご覧ください

SortedList<TKey,TValue>(IDictionary<TKey,TValue>)

指定した SortedList<TKey,TValue> からコピーした要素を格納し、コピーした要素の数を格納できるだけの容量を備え、既定の IDictionary<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。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>.

public:
 SortedList(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary);
public SortedList (System.Collections.Generic.IDictionary<TKey,TValue> dictionary);
new System.Collections.Generic.SortedList<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> -> System.Collections.Generic.SortedList<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue))

パラメーター

dictionary
IDictionary<TKey,TValue>

新しい IDictionary<TKey,TValue> に要素がコピーされた SortedList<TKey,TValue>The IDictionary<TKey,TValue> whose elements are copied to the new SortedList<TKey,TValue>.

例外

dictionarynullです。dictionary is null.

dictionary に、1 つ以上の重複するキーが格納されています。dictionary contains one or more duplicate keys.

SortedList<TKey,TValue> コンストラクターSortedList<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>に渡す Dictionary<TKey,TValue>ことによって、を使用しての情報の並べ替えられたコピーを作成する方法を次のコード例に示します。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
 */
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new Dictionary of strings, with string 
        ' keys.
        Dim openWith As New Dictionary(Of 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.
        Dim copy As New SortedList(Of String, String)(openWith)

        ' List the sorted contents of the copy.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In copy
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' 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

注釈

SortedList<TKey,TValue>のすべてのキーは、既定の比較子に従って一意である必要がありdictionaryます。同様に、ソース内のすべてのキーも、既定の比較子に従って一意である必要があります。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.

新しいSortedList<TKey,TValue>の容量はのdictionary要素の数に設定されます。そのため、リストの設定中にサイズ変更は行われません。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.

このコンストラクターは、のTKey既定の比較子を使用します。This constructor uses the default comparer for TKey. 比較子を指定するにはSortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) 、コンストラクターを使用します。To specify a comparer, use the SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) constructor. 既定の比較Comparer<T>.Default子は、キーのTKeySystem.IComparable<T>がを実装しているかどうかを確認し、使用可能な場合はその実装を使用します。The default comparer Comparer<T>.Default checks whether the key type TKey implements System.IComparable<T> and uses that implementation, if available. それ以外のComparer<T>.Default場合は、キーのTKeySystem.IComparableがを実装しているかどうかを確認します。If not, Comparer<T>.Default checks whether the key type TKey implements System.IComparable. キーの型TKeyがどちらのインターフェイスも実装していない場合System.Collections.Generic.IComparer<T>は、パラメーターをcomparer受け取るコンストラクターのオーバーロードで実装を指定できます。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.

dictionaryデータが並べ替えられている場合、このコンストラクターはnO () 操作nになります。ここでdictionary、は内の要素の数です。If the data in dictionary are sorted, this constructor is an O(n) operation, where n is the number of elements in dictionary. それ以外の場合は、nO (*n) 操作になります。Otherwise it is an O(n*n) operation.

こちらもご覧ください

SortedList<TKey,TValue>(Int32)

空で、指定した初期量を備え、既定の SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the specified initial capacity, and uses the default IComparer<T>.

public:
 SortedList(int capacity);
public SortedList (int capacity);
new System.Collections.Generic.SortedList<'Key, 'Value> : int -> System.Collections.Generic.SortedList<'Key, 'Value>
Public Sub New (capacity As Integer)

パラメーター

capacity
Int32

SortedList<TKey,TValue> が格納できる要素数の初期値。The initial number of elements that the SortedList<TKey,TValue> can contain.

例外

capacity が 0 未満です。capacity is less than zero.

次のコード例では、初期容量が4の並べ替えられたリストを作成し、4つのエントリを設定します。The following code example creates a sorted list with an initial capacity of 4 and populates it with 4 entries.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new sorted list of strings, with string keys and
        // an initial capacity of 4.
        SortedList<string, string> openWith = 
                               new SortedList<string, string>(4);
        
        // Add 4 elements to the list. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");
        
        // List the contents of the sorted list.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            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
 */
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new sorted list of strings, with string keys and
        ' an initial capacity of 4.
        Dim openWith As New SortedList(Of String, String)(4)
        
        ' Add 4 elements to the list. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("dib", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")
        
        ' List the contents of the sorted list.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' 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

注釈

内のSortedList<TKey,TValue>すべてのキーは、既定の比較子に従って一意である必要があります。Every key in a SortedList<TKey,TValue> must be unique according to the default comparer.

SortedList<TKey,TValue>容量は、サイズ変更のSortedList<TKey,TValue>前にが保持できる要素の数です。The capacity of a SortedList<TKey,TValue> is the number of elements that the SortedList<TKey,TValue> can hold before resizing. 要素がにSortedList<TKey,TValue>追加されると、内部配列を再割り当てすることで、必要に応じて容量が自動的に増加します。As elements are added to a SortedList<TKey,TValue>, the capacity is automatically increased as required by reallocating the internal array.

コレクションのサイズを推定できる場合、初期容量を指定すると、 SortedList<TKey,TValue>に要素を追加するときに、さまざまなサイズ変更操作を実行する必要がなくなります。If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the SortedList<TKey,TValue>.

容量は、を呼び出すTrimExcessか、プロパティをCapacity明示的に設定することによって減らすことができます。The capacity can be decreased by calling TrimExcess or by setting the Capacity property explicitly. 容量を減らしてメモリを再割り当てし、内SortedList<TKey,TValue>のすべての要素をコピーします。Decreasing the capacity reallocates memory and copies all the elements in the SortedList<TKey,TValue>.

このコンストラクターは、のTKey既定の比較子を使用します。This constructor uses the default comparer for TKey. 比較子を指定するにはSortedList<TKey,TValue>(Int32, IComparer<TKey>) 、コンストラクターを使用します。To specify a comparer, use the SortedList<TKey,TValue>(Int32, IComparer<TKey>) constructor. 既定の比較Comparer<T>.Default子は、キーのTKeySystem.IComparable<T>がを実装しているかどうかを確認し、使用可能な場合はその実装を使用します。The default comparer Comparer<T>.Default checks whether the key type TKey implements System.IComparable<T> and uses that implementation, if available. それ以外のComparer<T>.Default場合は、キーのTKeySystem.IComparableがを実装しているかどうかを確認します。If not, Comparer<T>.Default checks whether the key type TKey implements System.IComparable. キーの型TKeyがどちらのインターフェイスも実装していない場合System.Collections.Generic.IComparer<T>は、パラメーターをcomparer受け取るコンストラクターのオーバーロードで実装を指定できます。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.

このコンストラクターは O (n) 操作です。ここnで、はcapacityです。This constructor is an O(n) operation, where n is capacity.

こちらもご覧ください

SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>)

指定した SortedList<TKey,TValue> からコピーした要素を格納し、コピーした要素の数を格納できるだけの容量を備え、指定した IDictionary<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。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>.

public:
 SortedList(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary, System::Collections::Generic::IComparer<TKey> ^ comparer);
public SortedList (System.Collections.Generic.IDictionary<TKey,TValue> dictionary, System.Collections.Generic.IComparer<TKey> comparer);
new System.Collections.Generic.SortedList<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> * System.Collections.Generic.IComparer<'Key> -> System.Collections.Generic.SortedList<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue), comparer As IComparer(Of TKey))

パラメーター

dictionary
IDictionary<TKey,TValue>

新しい IDictionary<TKey,TValue> に要素がコピーされた SortedList<TKey,TValue>The IDictionary<TKey,TValue> whose elements are copied to the new SortedList<TKey,TValue>.

comparer
IComparer<TKey>

キーの比較時に使用する IComparer<T> の実装。The IComparer<T> implementation to use when comparing keys.

- または --or- キーの型に既定の Comparer<T> を使用する場合は nullnull to use the default Comparer<T> for the type of the key.

例外

dictionarynullです。dictionary is null.

dictionary に、1 つ以上の重複するキーが格納されています。dictionary contains one or more duplicate keys.

を使用SortedList<TKey,TValue>Dictionary<TKey,TValue> Dictionary<TKey,TValue>て、をコンストラクターに渡すことによって、大文字と小文字を区別せずに、大文字と小文字を区別せずに情報の並べ替えられたコピーを作成する方法を次のコード例に示します。SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>)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.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new Dictionary of strings, with string keys and
        // a case-insensitive equality comparer for the current 
        // culture.
        Dictionary<string, string> openWith = 
            new Dictionary<string, string>
                (StringComparer.CurrentCultureIgnoreCase);
        
        // 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 a 
        // case-insensitive equality comparer for the current culture,
        // and initialize it with the contents of the Dictionary.
        SortedList<string, string> copy = 
            new SortedList<string, string>(openWith, 
                StringComparer.CurrentCultureIgnoreCase);

        // List the sorted 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
 */
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new Dictionary of strings, with string keys and
        ' a case-insensitive equality comparer for the current 
        ' culture.
        Dim openWith As New Dictionary(Of String, String)( _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' 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 a 
        ' case-insensitive equality comparer for the current culture,
        ' and initialize it with the contents of the Dictionary.
        Dim copy As New SortedList(Of String, String)(openWith, _
            StringComparer.CurrentCultureIgnoreCase)

        ' List the sorted contents of the copy.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In copy
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' 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

注釈

SortedList<TKey,TValue>のすべてのキーは、指定された比較子に従って一意である必要dictionaryがあります。同様に、ソース内のすべてのキーは、指定された比較子に従って一意である必要もあります。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.

新しいSortedList<TKey,TValue>の容量はのdictionary要素の数に設定されます。そのため、リストの設定中にサイズ変更は行われません。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.

dictionaryデータが並べ替えられている場合、このコンストラクターはnO () 操作nになります。ここでdictionary、は内の要素の数です。If the data in dictionary are sorted, this constructor is an O(n) operation, where n is the number of elements in dictionary. それ以外の場合は、nO (*n) 操作になります。Otherwise it is an O(n*n) operation.

こちらもご覧ください

SortedList<TKey,TValue>(Int32, IComparer<TKey>)

空で、指定した初期量を備え、指定した SortedList<TKey,TValue> を使用する、IComparer<T> クラスの新しいインスタンスを初期化します。Initializes a new instance of the SortedList<TKey,TValue> class that is empty, has the specified initial capacity, and uses the specified IComparer<T>.

public:
 SortedList(int capacity, System::Collections::Generic::IComparer<TKey> ^ comparer);
public SortedList (int capacity, System.Collections.Generic.IComparer<TKey> comparer);
new System.Collections.Generic.SortedList<'Key, 'Value> : int * System.Collections.Generic.IComparer<'Key> -> System.Collections.Generic.SortedList<'Key, 'Value>
Public Sub New (capacity As Integer, comparer As IComparer(Of TKey))

パラメーター

capacity
Int32

SortedList<TKey,TValue> が格納できる要素数の初期値。The initial number of elements that the SortedList<TKey,TValue> can contain.

comparer
IComparer<TKey>

キーの比較時に使用する IComparer<T> の実装。The IComparer<T> implementation to use when comparing keys.

- または --or- キーの型に既定の Comparer<T> を使用する場合は nullnull to use the default Comparer<T> for the type of the key.

例外

capacity が 0 未満です。capacity is less than zero.

次のコード例では、初期量が5で、現在のカルチャに対して大文字と小文字を区別しない比較子を使用して、並べ替えられたリストを作成します。The following code example creates a sorted list with an initial capacity of 5 and a case-insensitive comparer for the current culture. この例では、4つの要素 (小文字のキーを持つ要素と、大文字のキーを持つ要素) を追加します。The example adds four elements, some with lower-case keys and some with upper-case keys. 次に、既存のキーと異なるキーを使用して要素を追加しようとします。この場合、大文字小文字の区別のみが発生し、結果として得られる例外をキャッチして、エラーメッセージを表示します。The example then attempts to add an element with a key that differs from an existing key only by case, catches the resulting exception, and displays an error message. 最後に、この例では、大文字と小文字を区別しない並べ替え順序で要素を表示します。Finally, the example displays the elements in case-insensitive sort order.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new sorted list of strings, with string keys, an
        // initial capacity of 5, and a case-insensitive comparer.
        SortedList<string, string> openWith = 
                      new SortedList<string, string>(5, 
                          StringComparer.CurrentCultureIgnoreCase);
        
        // Add 4 elements to the list. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("DIB", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // Try to add a fifth element with a key that is the same 
        // except for case; this would be allowed with the default
        // comparer.
        try
        {
            openWith.Add("BMP", "paint.exe");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("\nBMP is already in the sorted list.");
        }
        
        // List the contents of the sorted list.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, 
                kvp.Value);
        }
    }
}

/* This code example produces the following output:

BMP is already in the sorted list.

Key = bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
 */
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new sorted list of strings, with string keys, an
        ' initial capacity of 5, and a case-insensitive comparer.
        Dim openWith As New SortedList(Of String, String)(5, _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' Add 4 elements to the list. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("DIB", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")

        ' Try to add a fifth element with a key that is the same 
        ' except for case; this would be allowed with the default
        ' comparer.
        Try
            openWith.Add("BMP", "paint.exe")
        Catch ex As ArgumentException
            Console.WriteLine(vbLf & "BMP is already in the sorted list.")
        End Try
        
        ' List the contents of the sorted list.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'BMP is already in the sorted list.
'
'Key = bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe

注釈

内のSortedList<TKey,TValue>すべてのキーは、指定された比較子に従って一意である必要があります。Every key in a SortedList<TKey,TValue> must be unique according to the specified comparer.

SortedList<TKey,TValue>容量は、サイズ変更のSortedList<TKey,TValue>前にが保持できる要素の数です。The capacity of a SortedList<TKey,TValue> is the number of elements that the SortedList<TKey,TValue> can hold before resizing. 要素がにSortedList<TKey,TValue>追加されると、内部配列を再割り当てすることで、必要に応じて容量が自動的に増加します。As elements are added to a SortedList<TKey,TValue>, the capacity is automatically increased as required by reallocating the internal array.

コレクションのサイズを推定できる場合、初期容量を指定すると、 SortedList<TKey,TValue>に要素を追加するときに、さまざまなサイズ変更操作を実行する必要がなくなります。If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the SortedList<TKey,TValue>.

容量は、を呼び出すTrimExcessか、プロパティをCapacity明示的に設定することによって減らすことができます。The capacity can be decreased by calling TrimExcess or by setting the Capacity property explicitly. 容量を減らしてメモリを再割り当てし、内SortedList<TKey,TValue>のすべての要素をコピーします。Decreasing the capacity reallocates memory and copies all the elements in the SortedList<TKey,TValue>.

このコンストラクターは O (n) 操作です。ここnで、はcapacityです。This constructor is an O(n) operation, where n is capacity.

こちらもご覧ください

適用対象