Heim >Backend-Entwicklung >C++ >Wie kann ich eine geordnete Aufzählung von Wörterbuchelementen in C# garantieren?

Wie kann ich eine geordnete Aufzählung von Wörterbuchelementen in C# garantieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-17 18:47:10538Durchsuche

How Can I Guarantee Ordered Enumeration of Dictionary Elements in C#?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn