SortedList SortedList SortedList SortedList Class

Definition

Stellt eine Auflistung von Schlüssel-Wert-Paaren dar, die nach Schlüsseln sortiert sind und auf die sowohl über Schlüssel als auch über Indizes zugegriffen werden kann.Represents a collection of key/value pairs that are sorted by the keys and are accessible by key and by index.

public ref class SortedList : ICloneable, System::Collections::IDictionary
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface IDictionary
    interface ICloneable
    interface ICollection
    interface IEnumerable
Public Class SortedList
Implements ICloneable, IDictionary
Vererbung
SortedListSortedListSortedListSortedList
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein SortedList -Objekt erstellt und initialisiert wird und wie seine Schlüssel und Werte gedruckt werden.The following code example shows how to create and initialize a SortedList object and how to print out its keys and values.

#using <system.dll>

using namespace System;
using namespace System::Collections;
public ref class SamplesSortedList
{
public:
   static void PrintKeysAndValues( SortedList^ myList )
   {
      Console::WriteLine( "\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList->Count; i++ )
      {
         Console::WriteLine( "\t{0}:\t{1}", myList->GetKey( i ), myList->GetByIndex( i ) );

      }
      Console::WriteLine();
   }

};

int main()
{

   // Creates and initializes a new SortedList.
   SortedList^ mySL = gcnew SortedList;
   mySL->Add( "Third", "!" );
   mySL->Add( "Second", "World" );
   mySL->Add( "First", "Hello" );

   // Displays the properties and values of the SortedList.
   Console::WriteLine( "mySL" );
   Console::WriteLine( "  Count:    {0}", mySL->Count );
   Console::WriteLine( "  Capacity: {0}", mySL->Capacity );
   Console::WriteLine( "  Keys and Values:" );
   SamplesSortedList::PrintKeysAndValues( mySL );
}

/*
This code produces the following output.

mySL
Count:    3
Capacity: 16
Keys and Values:
-KEY-    -VALUE-
First:    Hello
Second:    World
Third:    !
*/
using System;
using System.Collections;
public class SamplesSortedList  {

   public static void Main()  {

      // Creates and initializes a new SortedList.
      SortedList mySL = new SortedList();
       mySL.Add("Third", "!");
       mySL.Add("Second", "World");
       mySL.Add("First", "Hello");

      // Displays the properties and values of the SortedList.
      Console.WriteLine( "mySL" );
      Console.WriteLine( "  Count:    {0}", mySL.Count );
      Console.WriteLine( "  Capacity: {0}", mySL.Capacity );
      Console.WriteLine( "  Keys and Values:" );
      PrintKeysAndValues( mySL );
   }


   public static void PrintKeysAndValues( SortedList myList )  {
      Console.WriteLine( "\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList.Count; i++ )  {
         Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

mySL
  Count:    3
  Capacity: 16
  Keys and Values:
    -KEY-    -VALUE-
    First:    Hello
    Second:    World
    Third:    !
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add("Third", "!")
        mySL.Add("Second", "World")
        mySL.Add("First", "Hello")
        
        ' Displays the properties and values of the SortedList.
        Console.WriteLine("mySL")
        Console.WriteLine("  Count:    {0}", mySL.Count)
        Console.WriteLine("  Capacity: {0}", mySL.Capacity)
        Console.WriteLine("  Keys and Values:")
        PrintKeysAndValues(mySL)
    End Sub
    
    Public Shared Sub PrintKeysAndValues(myList As SortedList)
        Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
           "-VALUE-")
        Dim i As Integer
        For i = 0 To myList.Count - 1
            Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
               "{1}", myList.GetKey(i), myList.GetByIndex(i))
        Next i
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' mySL
'   Count:    3
'   Capacity: 16
'   Keys and Values:
'     -KEY-     -VALUE-
'     First:    Hello
'     Second:   World
'     Third:    !
 

Hinweise

Auf SortedList ein-Element kann über seinen Schlüssel zugegriffen werden, z. b IDictionary . ein Element in einer beliebigen Implementierung oder durch seinen Index, IList wie ein Element in jeder Implementierung.A SortedList element can be accessed by its key, like an element in any IDictionary implementation, or by its index, like an element in any IList implementation.

Wichtig

Es wird nicht empfohlen, die- SortedList Klasse für die neue Entwicklung zu verwenden.We don't recommend that you use the SortedList class for new development. Stattdessen wird die Verwendung der generischen System.Collections.Generic.SortedList<TKey,TValue> -Klasse empfohlen.Instead, we recommend that you use the generic System.Collections.Generic.SortedList<TKey,TValue> class. Weitere Informationen finden Sie unter nicht generische Auflistungen sollten nicht auf GitHub verwendet werden.For more information, see Non-generic collections shouldn't be used on GitHub.

Ein SortedList -Objekt verwaltet intern zwei Arrays, um die Elemente der Liste zu speichern, d. h. ein Array für die Schlüssel und ein anderes Array für die zugeordneten Werte.A SortedList object internally maintains two arrays to store the elements of the list; that is, one array for the keys and another array for the associated values. Jedes Element ist ein Schlüssel-Wert-Paar, auf das als DictionaryEntry -Objekt zugegriffen werden kann.Each element is a key/value pair that can be accessed as a DictionaryEntry object. Ein Schlüssel kann nicht nullsein, aber ein Wert kann sein.A key cannot be null, but a value can be.

Die Kapazität eines SortedList -Objekts ist die Anzahl der Elemente, SortedList die in der enthalten sein können.The capacity of a SortedList object is the number of elements the SortedList can hold. Wenn Elemente zu einem SortedListhinzugefügt werden, wird die Kapazität bei Bedarf durch erneute Zuweisung automatisch erhöht.As elements are added to a SortedList, the capacity is automatically increased as required through reallocation. Die Kapazität kann verringert werden, indem TrimToSize Sie aufrufen oder indem Capacity Sie die-Eigenschaft explizit festlegen.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Nur .NET Framework: Bei sehr großen SortedList Objekten können Sie die maximale Kapazität auf 2 Milliarden Elemente in einem 64-Bit-System erhöhen, indem Sie enabled das-Attribut <gcAllowVeryLargeObjects> des-Konfigurations true Elements in der Laufzeitumgebung auf festlegen..NET Framework only: For very large SortedList objects, you can increase the maximum capacity to 2 billion elements on a 64-bit system by setting the enabled attribute of the <gcAllowVeryLargeObjects> configuration element to true in the run-time environment.

Die Elemente eines SortedList -Objekts werden nach den Schlüsseln sortiert, entweder entsprechend einer bestimmten IComparer -Implementierung, die SortedList beim Erstellen von angegeben wird, IComparable oder gemäß der Implementierung, die von den Schlüsseln selbst bereitgestellt wird.The elements of a SortedList object are sorted by the keys either according to a specific IComparer implementation specified when the SortedList is created or according to the IComparable implementation provided by the keys themselves. In beiden Fällen lässt ein SortedList keine doppelten Schlüssel zu.In either case, a SortedList does not allow duplicate keys.

Die Index Sequenz basiert auf der Sortierreihenfolge.The index sequence is based on the sort sequence. Wenn ein Element hinzugefügt wird, wird es SortedList in der richtigen Sortierreihenfolge eingefügt, und die Indizierung wird entsprechend angepasst.When an element is added, it is inserted into SortedList in the correct sort order, and the indexing adjusts accordingly. Wenn ein Element entfernt wird, wird die Indizierung ebenfalls entsprechend angepasst.When an element is removed, the indexing also adjusts accordingly. Daher kann sich der Index eines bestimmten Schlüssel-Wert-Paars ändern, wenn Elemente dem SortedList Objekt hinzugefügt oder daraus entfernt werden.Therefore, the index of a specific key/value pair might change as elements are added or removed from the SortedList object.

Vorgänge für ein SortedList -Objekt sind aufgrund der Sortierung tendenziell langsamer als Hashtable Vorgänge für ein-Objekt.Operations on a SortedList object tend to be slower than operations on a Hashtable object because of the sorting. SortedList Bietet jedoch mehr Flexibilität, da der Zugriff auf die Werte entweder über die zugeordneten Schlüssel oder über die Indizes ermöglicht wird.However, the SortedList offers more flexibility by allowing access to the values either through the associated keys or through the indexes.

Auf Elemente in dieser Auflistung kann mit einem ganzzahligen Index zugegriffen werden.Elements in this collection can be accessed using an integer index. Indizes in dieser Sammlung sind NULL basiert.Indexes in this collection are zero-based.

Die foreach -Anweisung der C# -Sprachefor each (in Visual Basic) gibt ein Objekt des Typs der Elemente in der Auflistung zurück.The foreach statement of the C# language (for each in Visual Basic) returns an object of the type of the elements in the collection. Da jedes Element des SortedList Objekts ein Schlüssel-Wert-Paar ist, ist der Elementtyp nicht der Typ des Schlüssels oder der Typ des Werts.Since each element of the SortedList object is a key/value pair, the element type is not the type of the key or the type of the value. Stattdessen ist DictionaryEntryder Elementtyp.Rather, the element type is DictionaryEntry. Beispiel:For example:

for each (DictionaryEntry de in mySortedList)
{
    //...
}
foreach (DictionaryEntry de in mySortedList)
{
    //...
}
For Each de As DictionaryEntry In mySortedList
    '...
Next de

Bei foreach der-Anweisung handelt es sich um einen Wrapper um den Enumerator, der nur das Lesen von und das Schreiben in die Auflistung ermöglicht.The foreach statement is a wrapper around the enumerator, which allows only reading from, not writing to, the collection.

Konstruktoren

SortedList() SortedList() SortedList() SortedList()

Initialisiert eine neue, leere Instanz der SortedList-Klasse, die über die anfängliche Standardkapazität verfügt und entsprechend der IComparable-Schnittstelle sortiert wird, die von jedem zum SortedList-Objekt hinzugefügten Schlüssel implementiert wird.Initializes a new instance of the SortedList class that is empty, has the default initial capacity, and is sorted according to the IComparable interface implemented by each key added to the SortedList object.

SortedList(IComparer) SortedList(IComparer) SortedList(IComparer) SortedList(IComparer)

Initialisiert eine neue, leere Instanz der SortedList-Klasse, die über die anfängliche Standardkapazität verfügt und entsprechend der angegebenen IComparer-Schnittstelle sortiert wird.Initializes a new instance of the SortedList class that is empty, has the default initial capacity, and is sorted according to the specified IComparer interface.

SortedList(IComparer, Int32) SortedList(IComparer, Int32) SortedList(IComparer, Int32) SortedList(IComparer, Int32)

Initialisiert eine neue, leere Instanz der SortedList-Klasse, die über die angegebene anfängliche Kapazität verfügt und entsprechend der angegebenen IComparer-Schnittstelle sortiert wird.Initializes a new instance of the SortedList class that is empty, has the specified initial capacity, and is sorted according to the specified IComparer interface.

SortedList(IDictionary) SortedList(IDictionary) SortedList(IDictionary) SortedList(IDictionary)

Initialisiert eine neue Instanz der SortedList-Klasse mit Elementen, die aus dem angegebenen Wörterbuch kopiert werden. Die anfängliche Kapazität entspricht der Anzahl der kopierten Elemente, und die Sortierung erfolgt entsprechend der IComparable-Schnittstelle, die von den einzelnen Schlüsseln implementiert wird.Initializes a new instance of the SortedList class that contains elements copied from the specified dictionary, has the same initial capacity as the number of elements copied, and is sorted according to the IComparable interface implemented by each key.

SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer)

Initialisiert eine neue Instanz der SortedList-Klasse, die aus dem angegebenen Wörterbuch kopierte Elemente enthält. Die anfängliche Kapazität entspricht der Anzahl der kopierten Elemente, und die Sortierung erfolgt nach der angegebenen IComparer-Schnittstelle.Initializes a new instance of the SortedList class that contains elements copied from the specified dictionary, has the same initial capacity as the number of elements copied, and is sorted according to the specified IComparer interface.

SortedList(Int32) SortedList(Int32) SortedList(Int32) SortedList(Int32)

Initialisiert eine neue, leere Instanz der SortedList-Klasse, die über die angegebene anfängliche Standardkapazität verfügt und entsprechend der IComparable-Schnittstelle sortiert wird, die von jedem zum SortedList-Objekt hinzugefügten Schlüssel implementiert wird.Initializes a new instance of the SortedList class that is empty, has the specified initial capacity, and is sorted according to the IComparable interface implemented by each key added to the SortedList object.

Eigenschaften

Capacity Capacity Capacity Capacity

Ruft die Kapazität eines SortedList-Objekts ab oder legt diese fest.Gets or sets the capacity of a SortedList object.

Count Count Count Count

Ruft die Anzahl der Elemente ab, die in einem SortedList-Objekt enthalten sind.Gets the number of elements contained in a SortedList object.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

Ruft einen Wert ab, der angibt, ob ein SortedList-Objekt eine feste Größe hat.Gets a value indicating whether a SortedList object has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ruft einen Wert ab, der angibt, ob ein SortedList-Objekt schreibgeschützt ist.Gets a value indicating whether a SortedList object is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf ein SortedList-Objekt synchronisiert (threadsicher) ist.Gets a value indicating whether access to a SortedList object is synchronized (thread safe).

Item[Object] Item[Object] Item[Object] Item[Object]

Ruft den Wert ab, der einem bestimmten Schlüssel in einem SortedList-Objekt zugeordnet ist, oder legt diesen fest.Gets or sets the value associated with a specific key in a SortedList object.

Keys Keys Keys Keys

Ruft die Schlüssel in einem SortedList-Objekt ab.Gets the keys in a SortedList object.

SyncRoot SyncRoot SyncRoot SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ein SortedList-Objekt synchronisiert werden kann.Gets an object that can be used to synchronize access to a SortedList object.

Values Values Values Values

Ruft die Werte in einem SortedList-Objekt ab.Gets the values in a SortedList object.

Methoden

Add(Object, Object) Add(Object, Object) Add(Object, Object) Add(Object, Object)

Fügt einem SortedList-Objekt ein Element mit dem angegebenen Schlüssel und Wert hinzu.Adds an element with the specified key and value to a SortedList object.

Clear() Clear() Clear() Clear()

Entfernt alle Elemente aus einem SortedList-Objekt.Removes all elements from a SortedList object.

Clone() Clone() Clone() Clone()

Erstellt eine flache Kopie eines SortedList-Objekts.Creates a shallow copy of a SortedList object.

Contains(Object) Contains(Object) Contains(Object) Contains(Object)

Ermittelt, ob ein SortedList-Objekt einen bestimmten Schlüssel enthält.Determines whether a SortedList object contains a specific key.

ContainsKey(Object) ContainsKey(Object) ContainsKey(Object) ContainsKey(Object)

Ermittelt, ob ein SortedList-Objekt einen bestimmten Schlüssel enthält.Determines whether a SortedList object contains a specific key.

ContainsValue(Object) ContainsValue(Object) ContainsValue(Object) ContainsValue(Object)

Ermittelt, ob ein SortedList-Objekt einen bestimmten Wert enthält.Determines whether a SortedList object contains a specific value.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Kopiert SortedList-Elemente in ein eindimensionales Array-Objekt, beginnend mit dem angegebenen Index im Array.Copies SortedList elements to a one-dimensional Array object, starting at the specified index in the array.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetByIndex(Int32) GetByIndex(Int32) GetByIndex(Int32) GetByIndex(Int32)

Ruft den Wert am angegebenen Index in einem SortedList-Objekt ab.Gets the value at the specified index of a SortedList object.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Gibt ein IDictionaryEnumerator-Objekt zurück, das ein SortedList-Objekt durchläuft.Returns an IDictionaryEnumerator object that iterates through a SortedList object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetKey(Int32) GetKey(Int32) GetKey(Int32) GetKey(Int32)

Ruft den Schlüssel am angegebenen Index in einem SortedList-Objekt ab.Gets the key at the specified index of a SortedList object.

GetKeyList() GetKeyList() GetKeyList() GetKeyList()

Ruft die Schlüssel in einem SortedList-Objekt ab.Gets the keys in a SortedList object.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
GetValueList() GetValueList() GetValueList() GetValueList()

Ruft die Werte in einem SortedList-Objekt ab.Gets the values in a SortedList object.

IndexOfKey(Object) IndexOfKey(Object) IndexOfKey(Object) IndexOfKey(Object)

Gibt den nullbasierten Index des angegebenen Schlüssels in einem SortedList-Objekt zurück.Returns the zero-based index of the specified key in a SortedList object.

IndexOfValue(Object) IndexOfValue(Object) IndexOfValue(Object) IndexOfValue(Object)

Gibt den nullbasierten Index des ersten Vorkommens des angegebenen Werts in einem SortedList-Objekt zurück.Returns the zero-based index of the first occurrence of the specified value in a SortedList object.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Object) Remove(Object) Remove(Object) Remove(Object)

Entfernt das Element mit dem angegebenen Schlüssel aus einem SortedList-Objekt.Removes the element with the specified key from a SortedList object.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Entfernt das Element am angegebenen Index aus einem SortedList-Objekt.Removes the element at the specified index of a SortedList object.

SetByIndex(Int32, Object) SetByIndex(Int32, Object) SetByIndex(Int32, Object) SetByIndex(Int32, Object)

Ersetzt den Wert an einem bestimmten Index in einem SortedList-Objekt.Replaces the value at a specific index in a SortedList object.

Synchronized(SortedList) Synchronized(SortedList) Synchronized(SortedList) Synchronized(SortedList)

Gibt einen synchronisierten (threadsicheren) Wrapper für ein SortedList-Objekt zurück.Returns a synchronized (thread-safe) wrapper for a SortedList object.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)
TrimToSize() TrimToSize() TrimToSize() TrimToSize()

Legt die Kapazität auf die tatsächliche Anzahl der in einem SortedList-Objekt enthaltenen Elemente fest.Sets the capacity to the actual number of elements in a SortedList object.

Explizite Schnittstellenimplementierungen

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Gibt einen IEnumerator zurück, der SortedList durchläuft.Returns an IEnumerator that iterates through the SortedList.

Erweiterungsmethoden

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Threadsicherheit

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind Thread sicher.Public static (Shared in Visual Basic) members of this type are thread safe. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.Any instance members are not guaranteed to be thread safe.

Ein SortedList -Objekt kann mehrere Leser gleichzeitig unterstützen, solange die Auflistung nicht geändert wird.A SortedList object can support multiple readers concurrently, as long as the collection is not modified. Um die Thread Sicherheit von SortedListzu gewährleisten, müssen alle Vorgänge über den von der Synchronized(SortedList) -Methode zurückgegebenen Wrapper durchgeführt werden.To guarantee the thread safety of the SortedList, all operations must be done through the wrapper returned by the Synchronized(SortedList) method.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur.Enumerating through a collection is intrinsically not a thread-safe procedure. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Siehe auch