OrderedDictionary Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Auflistung von Schlüssel-Wert-Paaren dar, auf die durch den Schlüssel oder Index zugegriffen werden kann.
public ref class OrderedDictionary : System::Collections::IDictionary, System::Collections::Specialized::IOrderedDictionary
public ref class OrderedDictionary : System::Collections::IDictionary, System::Collections::Specialized::IOrderedDictionary, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public ref class OrderedDictionary : System::Collections::Specialized::IOrderedDictionary, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary
[System.Serializable]
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public class OrderedDictionary : System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type OrderedDictionary = class
interface ICollection
interface IEnumerable
interface IDictionary
interface IOrderedDictionary
[<System.Serializable>]
type OrderedDictionary = class
interface IOrderedDictionary
interface IDictionary
interface ICollection
interface IEnumerable
interface ISerializable
interface IDeserializationCallback
type OrderedDictionary = class
interface ICollection
interface IEnumerable
interface IDictionary
interface IOrderedDictionary
interface IDeserializationCallback
interface ISerializable
Public Class OrderedDictionary
Implements IDictionary, IOrderedDictionary
Public Class OrderedDictionary
Implements IDeserializationCallback, IDictionary, IOrderedDictionary, ISerializable
Public Class OrderedDictionary
Implements IDeserializationCallback, IOrderedDictionary, ISerializable
- Vererbung
-
OrderedDictionary
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel wird das Erstellen, die Population und die Änderung einer OrderedDictionary Auflistung sowie zwei Techniken zum Anzeigen des Inhalts der OrderedDictionaryAuflistung veranschaulicht: eine, die die Keys Eigenschaften und Values die andere verwendet, um einen Enumerator über die GetEnumerator Methode zu erstellen.
// 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
*/
' The following code example enumerates the elements of a OrderedDictionary.
Imports System.Collections
Imports System.Collections.Specialized
Public Class OrderedDictionarySample
Public Shared Sub Main()
' Creates and initializes a OrderedDictionary.
Dim myOrderedDictionary As New OrderedDictionary()
myOrderedDictionary.Add("testKey1", "testValue1")
myOrderedDictionary.Add("testKey2", "testValue2")
myOrderedDictionary.Add("keyToDelete", "valueToDelete")
myOrderedDictionary.Add("testKey3", "testValue3")
Dim keyCollection As ICollection = myOrderedDictionary.Keys
Dim valueCollection As ICollection = myOrderedDictionary.Values
' Display the contents Imports the key and value collections
DisplayContents( _
keyCollection, valueCollection, myOrderedDictionary.Count)
' Modifying the OrderedDictionary
If Not myOrderedDictionary.IsReadOnly Then
' 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")) Then
myOrderedDictionary.Remove("keyToDelete")
End If
End If
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 Imports an enumerator
Dim myEnumerator As IDictionaryEnumerator = _
myOrderedDictionary.GetEnumerator()
Console.WriteLine( _
"{0}Displaying the entries of a 'new' OrderedDictionary.", _
Environment.NewLine)
DisplayEnumerator(myEnumerator)
End Sub
' Displays the contents of the OrderedDictionary from its keys and values
Public Shared Sub DisplayContents( _
ByVal keyCollection As ICollection, _
ByVal valueCollection As ICollection, ByVal dictionarySize As Integer)
Dim myKeys(dictionarySize) As [String]
Dim myValues(dictionarySize) As [String]
keyCollection.CopyTo(myKeys, 0)
valueCollection.CopyTo(myValues, 0)
' Displays the contents of the OrderedDictionary
Console.WriteLine(" INDEX KEY VALUE")
Dim i As Integer
For i = 0 To dictionarySize - 1
Console.WriteLine(" {0,-5} {1,-25} {2}", _
i, myKeys(i), myValues(i))
Next i
Console.WriteLine()
End Sub
' Displays the contents of the OrderedDictionary using its enumerator
Public Shared Sub DisplayEnumerator( _
ByVal myEnumerator As IDictionaryEnumerator)
Console.WriteLine(" KEY VALUE")
While myEnumerator.MoveNext()
Console.WriteLine(" {0,-25} {1}", _
myEnumerator.Key, myEnumerator.Value)
End While
End Sub
End Class
'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 Klasse werden nicht nach dem Schlüssel sortiert, im Gegensatz zu den Elementen einer SortedDictionary<TKey,TValue> Klasse. Sie können entweder über den Schlüssel oder den Index auf Elemente zugreifen.
Die foreach-Anweisung der C#-Sprache (For Each in Visual Basic) gibt Objekte zurück, die vom Typ der einzelnen Elemente 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 des Typs des Werts. Stattdessen lautet DictionaryEntryder Elementtyp . Der folgende Code zeigt die Syntax.
foreach (DictionaryEntry de in myOrderedDictionary)
{
//...
}
For Each de As DictionaryEntry In myOrderedDictionary
'...
Next de
Die foreach Anweisung ist ein Wrapper um den Enumerator, der nur das Lesen von , nicht schreiben in die Auflistung ermöglicht.
Konstruktoren
| Name | Beschreibung |
|---|---|
| OrderedDictionary() |
Initialisiert eine neue Instanz der OrderedDictionary-Klasse. |
| OrderedDictionary(IEqualityComparer) |
Initialisiert eine neue Instanz der OrderedDictionary Klasse mithilfe des angegebenen Vergleichs. |
| OrderedDictionary(Int32, IEqualityComparer) |
Initialisiert eine neue Instanz der Klasse mithilfe der OrderedDictionary angegebenen Anfangskapazität und des Vergleichs. |
| OrderedDictionary(Int32) |
Initialisiert eine neue Instanz der Klasse mithilfe der OrderedDictionary angegebenen Anfangskapazität. |
| OrderedDictionary(SerializationInfo, StreamingContext) |
Initialisiert eine neue Instanz der Klasse, die mithilfe der OrderedDictionary angegebenen SerializationInfo Objekte StreamingContext serialisierbar ist. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Count |
Ruft die Anzahl der Schlüssel/Werte-Paare in der OrderedDictionary Auflistung ab. |
| IsReadOnly |
Ruft einen Wert ab, der angibt, ob die OrderedDictionary Auflistung schreibgeschützt ist. |
| Item[Int32] |
Dient zum Abrufen oder Festlegen des Werts am angegebenen Index. |
| Item[Object] |
Dient zum Abrufen oder Festlegen des Werts mit dem angegebenen Schlüssel. |
| Keys |
Ruft ein ICollection Objekt ab, das die Schlüssel in der OrderedDictionary Auflistung enthält. |
| Values |
Ruft ein ICollection Objekt ab, das die Werte in der OrderedDictionary Auflistung enthält. |
Methoden
| Name | Beschreibung |
|---|---|
| Add(Object, Object) |
Fügt der Auflistung mit dem niedrigsten verfügbaren Index einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu OrderedDictionary . |
| 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 in ein eindimensionales Array Objekt am angegebenen Index. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetEnumerator() |
Gibt ein IDictionaryEnumerator Objekt zurück, das die OrderedDictionary Auflistung durchläuft. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementiert die ISerializable Schnittstelle und gibt die daten zurück, die zum Serialisieren der OrderedDictionary Auflistung erforderlich sind. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Insert(Int32, Object, Object) |
Fügt einen neuen Eintrag in die OrderedDictionary Auflistung mit dem angegebenen Schlüssel und Wert am angegebenen Index ein. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnDeserialization(Object) |
Implementiert die ISerializable Schnittstelle und wird durch das Deserialisierungsereignis zurück aufgerufen, wenn die Deserialisierung abgeschlossen ist. |
| Remove(Object) |
Entfernt den 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
| Name | Beschreibung |
|---|---|
| ICollection.IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf das OrderedDictionary Objekt synchronisiert wird (threadsicher). |
| ICollection.SyncRoot |
Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf das OrderedDictionary Objekt verwendet werden kann. |
| IDeserializationCallback.OnDeserialization(Object) |
Implementiert die ISerializable Schnittstelle und wird durch das Deserialisierungsereignis zurück aufgerufen, wenn die Deserialisierung abgeschlossen ist. |
| IDictionary.IsFixedSize |
Ruft einen Wert ab, der angibt, ob die OrderedDictionary Größe fest ist. |
| IEnumerable.GetEnumerator() |
Gibt ein IDictionaryEnumerator Objekt zurück, das die OrderedDictionary Auflistung durchläuft. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |