Avatar ·

Wie man alle Elemente eines Dictionary in C# richtig durchläuft (iteriert)?

Hallo zusammen! Ich habe gerade angefangen, C# zu lernen, und bin auf ein Problem bei der Arbeit mit Wörterbüchern (Dictionary) gestoßen. Ich habe ein einfaches Wörterbuch, das die Namen von Studenten und ihre Noten speichert: ```csharp Dictionary students = new Dictionary { { "Anna", 85 }, { "Ivan", 92 }, { "Maria", 78 } }; ``` Ich möchte alle Studenten und ihre Noten auf dem Bildschirm ausgeben. Ich habe versucht, eine normale `for`-Schleife über Indizes zu verwenden, wie bei einem Array oder einer Liste, aber der Compiler gibt einen Fehler aus – anscheinend hat Dictionary keinen Indexer nach numerischem Index. Ich habe im Internet gesucht, aber viele verschiedene Varianten gefunden: `foreach`, `for` mit `ElementAt()`, LINQ-Abfragen. Ich bin völlig verwirrt. Welche Methode ist die richtige und effizienteste für das einfache Durchlaufen aller Schlüssel-Wert-Paare? Und wie greife ich innerhalb der Schleife auf den Schlüssel und den Wert zu? Vielen Dank im Voraus für die Hilfe! <<>>

Hauptmethode: foreach-Schleife über KeyValuePair

Der richtigste und einfachste Weg ist die Verwendung einer `foreach`-Schleife über die `KeyValuePair`-Struktur. Dictionary implementiert das `IEnumerable>`-Interface, sodass Sie direkt über die Paare iterieren können. Beispiel: ```csharp foreach (KeyValuePair student in students) { Console.WriteLine($"{student.Key}: {student.Value}"); } ``` Sie können auch `var` verwenden, um den Code kürzer zu machen: ```csharp foreach (var student in students) { Console.WriteLine($"{student.Key}: {student.Value}"); } ``` Dies ist die empfohlene Methode, da sie lesbar, effizient und typsicher ist. Sie müssen sich keine Gedanken über Indizes oder die Reihenfolge machen – Dictionary garantiert keine bestimmte Reihenfolge, aber das ist für die meisten Anwendungsfälle in Ordnung.