Freigeben über


SortedList<TKey,TValue> Konstruktoren

Definition

Initialisiert eine neue Instanz der SortedList<TKey,TValue>-Klasse.

Überlädt

SortedList<TKey,TValue>()

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der Standardanfangskapazität und dem Standard-IComparer<T>.

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

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der Standardanfangskapazität und dem angegebenen IComparer<T>.

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

Initialisiert eine neue Instanz der SortedList<TKey,TValue>-Klasse, die aus dem angegebenen IDictionary<TKey,TValue> kopierte Elemente enthält, über eine der Anzahl der kopierten Elemente entsprechende Kapazität verfügt sowie den Standard-IComparer<T> verwendet.

SortedList<TKey,TValue>(Int32)

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der angegebenen anfänglichen Kapazität und dem Standard-IComparer<T>.

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

Initialisiert eine neue Instanz der SortedList<TKey,TValue>-Klasse, die aus dem angegebenen IDictionary<TKey,TValue> kopierte Elemente enthält, über eine der Anzahl der kopierten Elemente entsprechende Kapazität verfügt und den angegebenen IComparer<T> verwendet.

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

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der angegebenen Anfangskapazität und dem angegebenen IComparer<T>.

SortedList<TKey,TValue>()

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der Standardanfangskapazität und dem Standard-IComparer<T>.

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

Beispiele

Im folgenden Codebeispiel wird eine Leere SortedList<TKey,TValue> von Zeichenfolgen mit Zeichenfolgenschlüsseln erstellt und die Add -Methode verwendet, um einige Elemente hinzuzufügen. Das Beispiel zeigt, dass die Add -Methode einen ArgumentException auslöst, wenn versucht wird, einen doppelten Schlüssel hinzuzufügen.

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SortedList<TKey,TValue>-Klasse bereitgestellt wird.

// 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
// Create a new sorted list of strings, with string
// keys.
let openWith = 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");
with
    | :? ArgumentException ->
        printfn "An element with Key = \"txt\" already exists."

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem Standardvergleich eindeutig sein.

Dieser Konstruktor verwendet den Standardwert für die anfängliche Kapazität von SortedList<TKey,TValue>. Verwenden Sie den Konstruktor, um die SortedList<TKey,TValue>(Int32) anfängliche Kapazität festzulegen. Wenn die endgültige Größe der Auflistung geschätzt werden kann, entfällt die Angabe der anfänglichen Kapazität die Notwendigkeit, eine Reihe von Größenänderungsvorgängen beim Hinzufügen von Elementen zu SortedList<TKey,TValue>durchzuführen.

Dieser Konstruktor verwendet den Standardvergleich für TKey. Verwenden Sie den SortedList<TKey,TValue>(IComparer<TKey>) Konstruktor, um einen Vergleich anzugeben. Der Standardvergleich Comparer<T>.Default überprüft, ob der Schlüsseltyp TKey diese Implementierung implementiert System.IComparable<T> und verwendet, sofern verfügbar. Andernfalls wird überprüft, Comparer<T>.Default ob der Schlüsseltyp TKey implementiert System.IComparable. Wenn der Schlüsseltyp TKey keine Schnittstelle implementiert, können Sie eine Implementierung in einer System.Collections.Generic.IComparer<T> Konstruktorüberladung angeben, die einen comparer Parameter akzeptiert.

Dieser Konstruktor ist ein O(1)-Vorgang.

Weitere Informationen

Gilt für:

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

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der Standardanfangskapazität und dem angegebenen IComparer<T>.

public:
 SortedList(System::Collections::Generic::IComparer<TKey> ^ comparer);
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))

Parameter

comparer
IComparer<TKey>

Die IComparer<T>-Implementierung, die beim Vergleich von Schlüsseln verwendet wird.

- oder -

null, um den Standard-Comparer<T> für den Schlüsseltyp zu verwenden.

Beispiele

Im folgenden Codebeispiel wird eine sortierte Liste mit einem Vergleich ohne Beachtung der Groß-/Kleinschreibung für die aktuelle Kultur erstellt. Im Beispiel werden vier Elemente hinzugefügt, einige mit Kleinbuchstaben und einige mit Großbuchstaben. Im Beispiel wird dann versucht, ein Element mit einem Schlüssel hinzuzufügen, der sich von einem vorhandenen Schlüssel nur nach Groß- und Kleinschreibung unterscheidet, fängt die resultierende Ausnahme ab und zeigt eine Fehlermeldung an. Schließlich werden im Beispiel die Elemente in der Sortierreihenfolge ohne Beachtung der Groß-/Kleinschreibung angezeigt.

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

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem angegebenen Vergleich eindeutig sein.

Dieser Konstruktor verwendet den Standardwert für die anfängliche Kapazität von SortedList<TKey,TValue>. Verwenden Sie den Konstruktor, um die SortedList<TKey,TValue>(Int32, IComparer<TKey>) anfängliche Kapazität festzulegen. Wenn die endgültige Größe der Auflistung geschätzt werden kann, entfällt die Angabe der anfänglichen Kapazität die Notwendigkeit, eine Reihe von Größenänderungsvorgängen beim Hinzufügen von Elementen zu SortedList<TKey,TValue>durchzuführen.

Dieser Konstruktor ist ein O(1)-Vorgang.

Weitere Informationen

Gilt für:

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

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue Instanz der SortedList<TKey,TValue>-Klasse, die aus dem angegebenen IDictionary<TKey,TValue> kopierte Elemente enthält, über eine der Anzahl der kopierten Elemente entsprechende Kapazität verfügt sowie den Standard-IComparer<T> verwendet.

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

Parameter

dictionary
IDictionary<TKey,TValue>

Das IDictionary<TKey,TValue>, dessen Elemente in das neue SortedList<TKey,TValue> kopiert werden.

Ausnahmen

dictionary ist null.

dictionary enthält mindestens einen doppelten Schlüssel.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie SortedList<TKey,TValue> Sie eine sortierte Kopie der Informationen in einem Dictionary<TKey,TValue>erstellen, indem Sie die Dictionary<TKey,TValue> an den SortedList<TKey,TValue>(IDictionary<TKey,TValue>) Konstruktor übergeben.

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

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem Standardvergleich eindeutig sein. Ebenso muss jeder Schlüssel in der Quelle dictionary gemäß dem Standardvergleich eindeutig sein.

Die Kapazität des neuen SortedList<TKey,TValue> ist auf die Anzahl der Elemente in dictionaryfestgelegt, sodass keine Größenänderung stattfindet, während die Liste aufgefüllt wird.

Dieser Konstruktor verwendet den Standardvergleich für TKey. Verwenden Sie den SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) Konstruktor, um einen Vergleich anzugeben. Der Standardvergleich Comparer<T>.Default überprüft, ob der Schlüsseltyp TKey diese Implementierung implementiert System.IComparable<T> und verwendet, sofern verfügbar. Andernfalls wird überprüft, Comparer<T>.Default ob der Schlüsseltyp TKey implementiert System.IComparable. Wenn der Schlüsseltyp TKey keine Schnittstelle implementiert, können Sie eine Implementierung in einer System.Collections.Generic.IComparer<T> Konstruktorüberladung angeben, die einen comparer Parameter akzeptiert.

Die Schlüssel in dictionary werden in den neuen SortedList<TKey,TValue> kopiert und einmal sortiert, sodass dieser Konstruktor ein O(Protokolln ) n-Vorgang ist.

Weitere Informationen

Gilt für:

SortedList<TKey,TValue>(Int32)

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der angegebenen anfänglichen Kapazität und dem Standard-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)

Parameter

capacity
Int32

Die anfängliche Anzahl von Elementen, die das SortedList<TKey,TValue> enthalten kann.

Ausnahmen

capacity ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird eine sortierte Liste mit einer Anfangskapazität von 4 erstellt und mit 4 Einträgen aufgefüllt.

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

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem Standardvergleich eindeutig sein.

Die Kapazität eines SortedList<TKey,TValue> ist die Anzahl der Elemente, die SortedList<TKey,TValue> vor der Größenänderung enthalten sein können. Wenn Elemente zu einem SortedList<TKey,TValue>hinzugefügt werden, wird die Kapazität bei Bedarf automatisch erhöht, indem das interne Array neu zugeordnet wird.

Wenn die Größe der Auflistung geschätzt werden kann, entfällt die Angabe der anfänglichen Kapazität die Notwendigkeit, eine Reihe von Größenänderungsvorgängen beim Hinzufügen von Elementen zu SortedList<TKey,TValue>durchzuführen.

Die Kapazität kann durch Aufrufen TrimExcess oder explizites Festlegen der Capacity Eigenschaft verringert werden. Durch das Verringern der Kapazität wird arbeitsspeicher neu zugewiesen und alle Elemente in kopiert SortedList<TKey,TValue>.

Dieser Konstruktor verwendet den Standardvergleich für TKey. Verwenden Sie den SortedList<TKey,TValue>(Int32, IComparer<TKey>) Konstruktor, um einen Vergleich anzugeben. Der Standardvergleich Comparer<T>.Default überprüft, ob der Schlüsseltyp TKey diese Implementierung implementiert System.IComparable<T> und verwendet, sofern verfügbar. Andernfalls wird überprüft, Comparer<T>.Default ob der Schlüsseltyp TKey implementiert System.IComparable. Wenn der Schlüsseltyp TKey keine Schnittstelle implementiert, können Sie eine Implementierung in einer System.Collections.Generic.IComparer<T> Konstruktorüberladung angeben, die einen comparer Parameter akzeptiert.

Dieser Konstruktor ist ein O(n)-Vorgang, wobei n ist capacity.

Weitere Informationen

Gilt für:

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

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue Instanz der SortedList<TKey,TValue>-Klasse, die aus dem angegebenen IDictionary<TKey,TValue> kopierte Elemente enthält, über eine der Anzahl der kopierten Elemente entsprechende Kapazität verfügt und den angegebenen IComparer<T> verwendet.

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);
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))

Parameter

dictionary
IDictionary<TKey,TValue>

Das IDictionary<TKey,TValue>, dessen Elemente in das neue SortedList<TKey,TValue> kopiert werden.

comparer
IComparer<TKey>

Die IComparer<T>-Implementierung, die beim Vergleich von Schlüsseln verwendet wird.

- oder -

null, um den Standard-Comparer<T> für den Schlüsseltyp zu verwenden.

Ausnahmen

dictionary ist null.

dictionary enthält mindestens einen doppelten Schlüssel.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie sie verwenden, SortedList<TKey,TValue> um eine ohne Beachtung der Groß-/Kleinschreibung sortierte Kopie der Informationen in einer nicht beachteten Dictionary<TKey,TValue>Groß-/Kleinschreibung zu erstellen, indem Sie die Dictionary<TKey,TValue> an den SortedList<TKey,TValue>(IDictionary<TKey,TValue>, IComparer<TKey>) Konstruktor übergeben. In diesem Beispiel gelten die Vergleiche ohne Beachtung der Groß-/Kleinschreibung für die aktuelle Kultur.

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

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem angegebenen Vergleich eindeutig sein. Ebenso muss jeder Schlüssel in der Quelle dictionary gemäß dem angegebenen Vergleich eindeutig sein.

Die Kapazität des neuen SortedList<TKey,TValue> ist auf die Anzahl der Elemente in dictionaryfestgelegt, sodass keine Größenänderung stattfindet, während die Liste aufgefüllt wird.

Die Schlüssel in dictionary werden in den neuen SortedList<TKey,TValue> kopiert und einmal sortiert, sodass dieser Konstruktor ein O(Protokolln ) n-Vorgang ist.

Weitere Informationen

Gilt für:

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

Quelle:
SortedList.cs
Quelle:
SortedList.cs
Quelle:
SortedList.cs

Initialisiert eine neue, leere Instanz der SortedList<TKey,TValue>-Klasse mit der angegebenen Anfangskapazität und dem angegebenen IComparer<T>.

public:
 SortedList(int capacity, System::Collections::Generic::IComparer<TKey> ^ comparer);
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))

Parameter

capacity
Int32

Die anfängliche Anzahl von Elementen, die das SortedList<TKey,TValue> enthalten kann.

comparer
IComparer<TKey>

Die IComparer<T>-Implementierung, die beim Vergleich von Schlüsseln verwendet wird.

- oder -

null, um den Standard-Comparer<T> für den Schlüsseltyp zu verwenden.

Ausnahmen

capacity ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird eine sortierte Liste mit einer Anfangskapazität von 5 und einem Vergleich der Groß-/Kleinschreibung für die aktuelle Kultur erstellt. Im Beispiel werden vier Elemente hinzugefügt, einige mit Kleinbuchstaben und einige mit Großbuchstaben. Im Beispiel wird dann versucht, ein Element mit einem Schlüssel hinzuzufügen, der sich von einem vorhandenen Schlüssel nur nach Groß- und Kleinschreibung unterscheidet, fängt die resultierende Ausnahme ab und zeigt eine Fehlermeldung an. Schließlich werden im Beispiel die Elemente in der Sortierreihenfolge ohne Beachtung der Groß-/Kleinschreibung angezeigt.

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

Hinweise

Jeder Schlüssel in einem SortedList<TKey,TValue> muss gemäß dem angegebenen Vergleich eindeutig sein.

Die Kapazität eines SortedList<TKey,TValue> ist die Anzahl der Elemente, die SortedList<TKey,TValue> vor der Größenänderung enthalten sein können. Wenn Elemente zu einem SortedList<TKey,TValue>hinzugefügt werden, wird die Kapazität bei Bedarf automatisch erhöht, indem das interne Array neu zugeordnet wird.

Wenn die Größe der Auflistung geschätzt werden kann, entfällt die Angabe der anfänglichen Kapazität die Notwendigkeit, eine Reihe von Größenänderungsvorgängen beim Hinzufügen von Elementen zu SortedList<TKey,TValue>durchzuführen.

Die Kapazität kann durch Aufrufen TrimExcess oder explizites Festlegen der Capacity Eigenschaft verringert werden. Durch das Verringern der Kapazität wird arbeitsspeicher neu zugewiesen und alle Elemente in kopiert SortedList<TKey,TValue>.

Dieser Konstruktor ist ein O(n)-Vorgang, wobei n ist capacity.

Weitere Informationen

Gilt für: