OrderedDictionary Klas

Definitie

Vertegenwoordigt een verzameling sleutel-/waardeparen die toegankelijk zijn voor de sleutel of index.

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
Overname
OrderedDictionary
Afgeleid
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u het maken, de populatie en het wijzigen van een OrderedDictionary verzameling, evenals twee technieken om de inhoud van de OrderedDictionaryverzameling weer te geven: een met behulp van de Keys ene en Values eigenschappen en de andere waarmee een opsomming wordt gemaakt via de GetEnumerator methode.

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

Opmerkingen

Elk element is een sleutel/waardepaar dat is opgeslagen in een DictionaryEntry object. Een sleutel kan niet zijn null, maar een waarde kan zijn.

De elementen van een OrderedDictionary klasse worden niet gesorteerd op de sleutel, in tegenstelling tot de elementen van een SortedDictionary<TKey,TValue> klasse. U kunt toegang krijgen tot elementen door de sleutel of door de index.

De instructie foreach van de C#-taal (For Each in Visual Basic) retourneert objecten die van het type van elk element in de verzameling zijn. Omdat elk element van de OrderedDictionary verzameling een sleutel-waardepaar is, is het elementtype niet het type sleutel of het type van de waarde. In plaats daarvan is DictionaryEntryhet elementtype . De volgende code toont de syntaxis.

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

De foreach instructie is een wrapper rond de enumerator, waarmee alleen kan worden gelezen van, niet schrijven naar, de verzameling.

Constructors

Name Description
OrderedDictionary()

Initialiseert een nieuw exemplaar van de OrderedDictionary klasse.

OrderedDictionary(IEqualityComparer)

Initialiseert een nieuw exemplaar van de OrderedDictionary klasse met behulp van de opgegeven vergelijkingsfunctie.

OrderedDictionary(Int32, IEqualityComparer)

Initialiseert een nieuw exemplaar van de OrderedDictionary klasse met behulp van de opgegeven initiële capaciteit en vergelijkingsfunctie.

OrderedDictionary(Int32)

Initialiseert een nieuw exemplaar van de OrderedDictionary klasse met behulp van de opgegeven initiële capaciteit.

OrderedDictionary(SerializationInfo, StreamingContext)

Initialiseert een nieuw exemplaar van de OrderedDictionary klasse die kan worden geserialiseerd met behulp van de opgegeven SerializationInfo en StreamingContext objecten.

Eigenschappen

Name Description
Count

Hiermee haalt u het aantal sleutel-/waardenparen op dat in de OrderedDictionary verzameling is opgenomen.

IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of de OrderedDictionary verzameling het kenmerk Alleen-lezen heeft.

Item[Int32]

Hiermee haalt u de waarde op of stelt u deze in op de opgegeven index.

Item[Object]

Hiermee haalt u de waarde op of stelt u deze in met de opgegeven sleutel.

Keys

Hiermee haalt u een ICollection object op met de sleutels in de OrderedDictionary verzameling.

Values

Hiermee haalt u een ICollection object op met de waarden in de OrderedDictionary verzameling.

Methoden

Name Description
Add(Object, Object)

Voegt een vermelding met de opgegeven sleutel en waarde toe aan de OrderedDictionary verzameling met de laagste beschikbare index.

AsReadOnly()

Retourneert een alleen-lezen kopie van de huidige OrderedDictionary verzameling.

Clear()

Hiermee verwijdert u alle elementen uit de OrderedDictionary verzameling.

Contains(Object)

Bepaalt of de OrderedDictionary verzameling een specifieke sleutel bevat.

CopyTo(Array, Int32)

Kopieert de OrderedDictionary elementen naar een eendimensionaal Array object op de opgegeven index.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetEnumerator()

Retourneert een IDictionaryEnumerator object dat door de OrderedDictionary verzameling wordt herhaald.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetObjectData(SerializationInfo, StreamingContext)

Implementeert de ISerializable interface en retourneert de gegevens die nodig zijn om de OrderedDictionary verzameling te serialiseren.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
Insert(Int32, Object, Object)

Hiermee voegt u een nieuwe vermelding in de OrderedDictionary verzameling in met de opgegeven sleutel en waarde in de opgegeven index.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnDeserialization(Object)

Implementeert de ISerializable interface en wordt teruggeroepen door de deserialisatie-gebeurtenis wanneer deserialisatie is voltooid.

Remove(Object)

Hiermee verwijdert u de vermelding met de opgegeven sleutel uit de OrderedDictionary verzameling.

RemoveAt(Int32)

Hiermee verwijdert u de vermelding in de opgegeven index uit de OrderedDictionary verzameling.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ICollection.IsSynchronized

Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot het OrderedDictionary object wordt gesynchroniseerd (thread-safe).

ICollection.SyncRoot

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het OrderedDictionary object te synchroniseren.

IDeserializationCallback.OnDeserialization(Object)

Implementeert de ISerializable interface en wordt teruggeroepen door de deserialisatie-gebeurtenis wanneer deserialisatie is voltooid.

IDictionary.IsFixedSize

Hiermee wordt een waarde opgehaald die aangeeft of de grootte van een OrderedDictionary vaste grootte is.

IEnumerable.GetEnumerator()

Retourneert een IDictionaryEnumerator object dat door de OrderedDictionary verzameling wordt herhaald.

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op