OrderedDictionary und Dictionary

War ich auf der Suche nach einem Weg, um meine Dictionary auflisten seiner KeyValuePair in der gleichen Reihenfolge, in der Sie Hinzugefügt wurden. Nun, Wörterbuch-doc deutlich, dass:

Für Zwecke der Aufzählung, wird jedes Element im Wörterbuch behandelt wird wie ein KeyValuePair<TKey, TValue> Struktur, einen Wert und dessen Schlüssel. Die Reihenfolge, in der die Elemente zurückgegeben werden, ist nicht definiert.

Fand ich heraus, dass das, was ich brauchte, war ein OrderedDictionary aber als Skeptiker, der ich bin, beschloss ich, es selbst auszuprobieren:

OrderedDictionary od = new OrderedDictionary();
Dictionary<String, String> d = new Dictionary<String, String>();

for (int i = 0; i < 10; i++ )
{
    od.Add("key"+i,"value"+i);
    d.Add("key"+i,"value"+i);
}

System.Console.WriteLine("OrderedDictionary");
foreach (DictionaryEntry de in od) {
    System.Console.WriteLine(de.Key +", " +de.Value);
}

System.Console.WriteLine("Dictionary");
foreach (var tmp in d) {
    System.Console.WriteLine(tmp.Key +", " + tmp.Value);
}

Ausgabe:

OrderedDictionary
key0, value0
key1, value1
key2, value2
...

Dictionary
key0, value0
key1, value1
key2, value2
...

Wie Sie sehen können, beide sind bestellt, und, dass zu erhöhen 2 Fragen:

In dem Fall hat die Dictionary geben Sie ein anderes um, das eine, in dem die Werte Hinzugefügt werden ?
Nicht meine erste foreach Schleife versichern mir, um wieder an meine KeyValuePair in der gleichen Reihenfolge, oder muss ich den index verwenden ?

InformationsquelleAutor der Frage DeadlyJesus | 2013-05-22

Schreibe einen Kommentar