Aufrechterhaltung der Reihenfolge beim Durchlaufen von C#-Wörterbüchern
Standard-C#-Wörterbücher garantieren nicht automatisch eine bestimmte Reihenfolge der Elemente während der Aufzählung. Die Reihenfolge kann unabhängig von der Einfügereihenfolge unvorhersehbar variieren. Es gibt jedoch Möglichkeiten, die Iterationsreihenfolge bei Bedarf zu steuern.
Methoden zur geordneten Aufzählung
Mehrere Strategien können eine geordnete Durchquerung von Wörterbuchelementen gewährleisten:
1. Sortieren von KeyValuePair-Paaren:
Diese Methode wandelt das Wörterbuch in ein sortiertes Array von KeyValuePair
Objekten um.
<code class="language-csharp">var sortedKVPs = _Dictionary.OrderBy(x => x.Key).ToArray(); foreach (KeyValuePair<string, string> kvp in sortedKVPs) { Trace.Write(String.Format("{0}={1}", kvp.Key, kvp.Value)); }</code>
Dieses Code-Snippet sortiert die Schlüssel-Wert-Paare basierend auf den Schlüsseln und durchläuft dann das sortierte Array, um in diesem Beispiel eine alphabetische Reihenfolge bereitzustellen.
2. Nutzung von OrderedDictionary:
Die Klasse OrderedDictionary
verwaltet explizit die Einfügereihenfolge.
<code class="language-csharp">// Create an ordered dictionary var orderedDictionary = new OrderedDictionary(); // Add elements orderedDictionary.Add("orange", "1"); orderedDictionary.Add("apple", "4"); orderedDictionary.Add("cucumber", "6"); // Add using indexer orderedDictionary["banana"] = 7; orderedDictionary["pineapple"] = 7; // Enumerate the ordered dictionary foreach (DictionaryEntry entry in orderedDictionary) { Trace.Write(String.Format("{0}={1}", entry.Key, entry.Value)); }</code>
Elemente werden in der genauen Reihenfolge abgerufen, in der sie dem OrderedDictionary
hinzugefügt wurden. Beachten Sie, dass OrderedDictionary
eine Legacy-Klasse ist; Erwägen Sie für neue Projekte die Verwendung von SortedDictionary
oder SortedList<TKey, TValue>
. SortedDictionary
sorgt für die Sortierung der Schlüssel und SortedList<TKey, TValue>
bietet ähnliche Funktionen mit teilweise besserer Leistung.
Das obige ist der detaillierte Inhalt vonWie kann ich eine geordnete Aufzählung von Wörterbuchelementen in C# garantieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!