Auf Englisch lesen

Teilen über


OrderedDictionary Klasse

Definition

Stellt eine Auflistung von Schlüssel-Wert-Paaren dar, auf die nach Schlüssel oder Index zugegriffen werden kann.

C#
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary
C#
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
C#
public class OrderedDictionary : System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
Vererbung
OrderedDictionary
Abgeleitet
Attribute
Implementiert

Beispiele

Das folgende Codebeispiel veranschaulicht das Erstellen, Auffüllen und Ändern einer OrderedDictionary Auflistung sowie zwei Techniken zum Anzeigen des Inhalts von OrderedDictionary: eine mit den Keys Eigenschaften und und Values und das andere erstellen einen Enumerator über die GetEnumerator -Methode.

C#
// The following code example enumerates the elements of a OrderedDictionary.
using System;
using System.Collections;
using System.Collections.Specialized;

public class OrderedDictionarySample
{
    public static void Main()
    {

        // Creates and initializes a OrderedDictionary.
        OrderedDictionary myOrderedDictionary = new OrderedDictionary();
        myOrderedDictionary.Add("testKey1", "testValue1");
        myOrderedDictionary.Add("testKey2", "testValue2");
        myOrderedDictionary.Add("keyToDelete", "valueToDelete");
        myOrderedDictionary.Add("testKey3", "testValue3");

        ICollection keyCollection = myOrderedDictionary.Keys;
        ICollection valueCollection = myOrderedDictionary.Values;

        // Display the contents using the key and value collections
        DisplayContents(keyCollection, valueCollection, myOrderedDictionary.Count);

        // Modifying the OrderedDictionary
        if (!myOrderedDictionary.IsReadOnly)
        {
            // Insert a new key to the beginning of the OrderedDictionary
            myOrderedDictionary.Insert(0, "insertedKey1", "insertedValue1");

            // Modify the value of the entry with the key "testKey2"
            myOrderedDictionary["testKey2"] = "modifiedValue";

            // Remove the last entry from the OrderedDictionary: "testKey3"
            myOrderedDictionary.RemoveAt(myOrderedDictionary.Count - 1);

            // Remove the "keyToDelete" entry, if it exists
            if (myOrderedDictionary.Contains("keyToDelete"))
            {
                myOrderedDictionary.Remove("keyToDelete");
            }
        }

        Console.WriteLine(
            "{0}Displaying the entries of a modified OrderedDictionary.",
            Environment.NewLine);
        DisplayContents(keyCollection, valueCollection, myOrderedDictionary.Count);

        // Clear the OrderedDictionary and add new values
        myOrderedDictionary.Clear();
        myOrderedDictionary.Add("newKey1", "newValue1");
        myOrderedDictionary.Add("newKey2", "newValue2");
        myOrderedDictionary.Add("newKey3", "newValue3");

        // Display the contents of the "new" Dictionary using an enumerator
        IDictionaryEnumerator myEnumerator =
            myOrderedDictionary.GetEnumerator();

        Console.WriteLine(
            "{0}Displaying the entries of a \"new\" OrderedDictionary.",
            Environment.NewLine);

        DisplayEnumerator(myEnumerator);
    }

    // Displays the contents of the OrderedDictionary from its keys and values
    public static void DisplayContents(
        ICollection keyCollection, ICollection valueCollection, int dictionarySize)
    {
        String[] myKeys = new String[dictionarySize];
        String[] myValues = new String[dictionarySize];
        keyCollection.CopyTo(myKeys, 0);
        valueCollection.CopyTo(myValues, 0);

        // Displays the contents of the OrderedDictionary
        Console.WriteLine("   INDEX KEY                       VALUE");
        for (int i = 0; i < dictionarySize; i++)
        {
            Console.WriteLine("   {0,-5} {1,-25} {2}",
                i, myKeys[i], myValues[i]);
        }
        Console.WriteLine();
    }

    // Displays the contents of the OrderedDictionary using its enumerator
    public static void DisplayEnumerator(IDictionaryEnumerator myEnumerator)
    {
        Console.WriteLine("   KEY                       VALUE");
        while (myEnumerator.MoveNext())
        {
            Console.WriteLine("   {0,-25} {1}",
                myEnumerator.Key, myEnumerator.Value);
        }
    }
}

/*
This code produces the following output.

   INDEX KEY                       VALUE
   0     testKey1                  testValue1
   1     testKey2                  testValue2
   2     keyToDelete               valueToDelete
   3     testKey3                  testValue3


Displaying the entries of a modified OrderedDictionary.
   INDEX KEY                       VALUE
   0     insertedKey1              insertedValue1
   1     testKey1                  testValue1
   2     testKey2                  modifiedValue


Displaying the entries of a "new" OrderedDictionary.
   KEY                       VALUE
   newKey1                   newValue1
   newKey2                   newValue2
   newKey3                   newValue3

*/

Hinweise

Jedes Element ist ein Schlüssel-Wert-Paar, das in einem DictionaryEntry -Objekt gespeichert ist. Ein Schlüssel kann nicht sein null, aber ein Wert kann sein.

Die Elemente einer OrderedDictionary werden im Gegensatz zu den Elementen einer SortedDictionary<TKey,TValue> Klasse nicht nach dem Schlüssel sortiert. Sie können entweder über den Schlüssel oder über den Index auf Elemente zugreifen.

Die foreach -Anweisung der C#-Sprache (For Each in Visual Basic) gibt Objekte zurück, die vom Typ jedes Elements in der Auflistung sind. Da jedes Element der OrderedDictionary Auflistung ein Schlüssel-Wert-Paar ist, ist der Elementtyp nicht der Typ des Schlüssels oder der Typ des Werts. Stattdessen ist DictionaryEntryder Elementtyp . Der folgende Code zeigt die Syntax von C#, Visual Basic und C++.

C#
foreach (DictionaryEntry de in myOrderedDictionary)
{
    //...
}

Die foreach -Anweisung ist ein Wrapper um den Enumerator, der nur das Lesen und nicht das Schreiben in die Auflistung zulässt.

Konstruktoren

OrderedDictionary()

Initialisiert eine neue Instanz der OrderedDictionary-Klasse.

OrderedDictionary(IEqualityComparer)

Initialisiert eine neue Instanz der OrderedDictionary-Klasse anhand des angegebenen Vergleichs.

OrderedDictionary(Int32)

Initialisiert eine neue Instanz der OrderedDictionary-Klasse anhand der angegebenen Anfangskapazität.

OrderedDictionary(Int32, IEqualityComparer)

Initialisiert eine neue Instanz der OrderedDictionary-Klasse anhand der angegebenen Anfangskapazität und des angegebenen Comparers.

OrderedDictionary(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der serialisierbaren OrderedDictionary-Klasse anhand des angegebenen SerializationInfo-Objekts und StreamingContext-Objektes.

Eigenschaften

Count

Ruft die Anzahl der Schlüssel-Wert-Paare in der OrderedDictionary-Auflistung ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die OrderedDictionary-Auflistung schreibgeschützt ist.

Item[Int32]

Ruft den Wert am angegebenen Index ab oder legt diesen fest.

Item[Object]

Ruft den Wert mit dem angegebenen Schlüssel ab oder legt diesen fest.

Keys

Ruft ein ICollection-Objekt ab, das die Schlüssel der OrderedDictionary-Auflistung enthält.

Values

Ruft ein ICollection-Objekt ab, das die Werte der OrderedDictionary-Auflistung enthält.

Methoden

Add(Object, Object)

Fügt der OrderedDictionary-Auflistung am kleinsten verfügbaren Index einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.

AsReadOnly()

Gibt eine schreibgeschützte Kopie der aktuellen OrderedDictionary-Auflistung zurück.

Clear()

Entfernt alle Elemente aus der OrderedDictionary-Auflistung.

Contains(Object)

Bestimmt, ob die OrderedDictionary-Auflistung einen bestimmten Schlüssel enthält.

CopyTo(Array, Int32)

Kopiert die OrderedDictionary-Elemente am angegebenen Index in ein eindimensionales Array-Objekt.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetEnumerator()

Gibt ein IDictionaryEnumerator-Objekt zum Durchlaufen der OrderedDictionary-Auflistung zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Implementiert die ISerializable-Schnittstelle und gibt die zum Serialisieren der OrderedDictionary-Auflistung erforderlichen Daten zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Insert(Int32, Object, Object)

Fügt am angegebenen Index einen neuen Eintrag mit dem angegebenen Schlüssel und Wert in die OrderedDictionary-Auflistung ein.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnDeserialization(Object)

Implementiert die ISerializable-Schnittstelle und wird nach Abschluss der Deserialisierung durch das Deserialisierungsereignis aufgerufen.

Remove(Object)

Entfernt der Eintrag mit dem angegebenen Schlüssel aus der OrderedDictionary-Auflistung.

RemoveAt(Int32)

Entfernt den Eintrag am angegebenen Index aus der OrderedDictionary-Auflistung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf das OrderedDictionary-Objekt synchronisiert (threadsicher) ist.

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf das OrderedDictionary-Objekt synchronisiert werden kann.

IDeserializationCallback.OnDeserialization(Object)

Implementiert die ISerializable-Schnittstelle und wird nach Abschluss der Deserialisierung durch das Deserialisierungsereignis aufgerufen.

IDictionary.IsFixedSize

Ruft einen Wert ab, der angibt, ob das OrderedDictionary eine feste Größe aufweist.

IEnumerable.GetEnumerator()

Gibt ein IDictionaryEnumerator-Objekt zum Durchlaufen der OrderedDictionary-Auflistung zurück.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0