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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du etwas falsch. Sie müssen nicht nur die einfügen-Werte nacheinander in das Wörterbuch, sondern auch entfernen Sie einige Elemente und sehen, wie die Reihenfolge hat sich danach geändert. Folgender code veranschaulicht dies:
druckt etwas ähnliches (OrderedDictionary immer bestellt):
InformationsquelleAutor der Antwort Ilya Ivanov