Du liest:
Das C# Dictionary (mit Codebeispielen)

Das C# Dictionary (mit Codebeispielen)

von Patrick
24.05.2020
Die C# Dictionary Datenstruktur

Als Softwareentwickler arbeiten wir sehr oft mit großen Mengen von Daten, die in verschiedenen Arten von Listen gespeichert sind. In diesem Artikel will ich dir zu diesem Zweck die C# Dictionary Klasse vorstellen, die diesen Prozess vereinfachen kann.

1. C# Dictionary erstellen & initialisieren

Dictionaries sind Auflistungen aus Schlüssel-Wert-Paaren. Die Datentypen von Schlüssel und Wert kannst du bei der Erstellung des Dictionaries angeben.

Dictionary<int, string> dict = new Dictionary<int, string>();

Dafür kannst du auch die verkürzte Schreibweise mit var verwenden.

var dict = new Dictionary<int, string>();

Du kannst ein Dictionary auch gleich mit Schlüssel-Wert-Paaren erstellen.

Dictionary<int, string> dict = new Dictionary<int, string> {
    {1, "Eins"},
    {2, "Zwei"}
};

1.1. Werte zu einem bestehenden Dictionary hinzufügen

Um einem Dictionary weitere Werte hinzuzufügen, kannst du entweder die Methode Add verwenden oder einen neuen Schlüssel in eckigen Klammern angeben.

Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "Eins");
dict[2] = "Zwei";

Wenn du allerdings versuchst, einen Schlüssel mit Add hinzuzufügen, der bereits existiert, resultiert das in einer ArgumentException.

try {
    dict.Add(1, "Fünf");
} catch (ArgumentException) {
    Console.WriteLine("Schlüssel 1 existiert bereits");
}
// Schlüssel 1 existiert bereits

1.2. Werte eines Dictionaries entfernen

Mit Count kannst du die Anzahl an Schlüssel-Wert-Paaren in einem Dictionary abfragen. Remove lässt dich Paare anhand des Schlüssels löschen.

Console.WriteLine(dict.Count);
// 2
dict.Remove(1);
Console.WriteLine(dict.Count);
// 1

Clear gibt dir eine Möglichkeit, ein Dictionary komplett zu leeren.

dict.Clear();
Console.WriteLine(dict.Count);
// 0

1.3. Auf Elemente eines Dictionaries zugreifen

Um auf einen Wert mit dem Schlüssel zuzugreifen, kannst du diesen in eckigen Klammern angeben.

Console.WriteLine(dict[1]);
// Eins

Mit den Methoden ContainsKey und ContainsValue kannst du überprüfen, ob ein Schlüssel oder Wert in einem Dictionary existiert.

if (!dict.ContainsKey(5)) {
    Console.WriteLine("Schlüssel 5 existiert nicht");
}
//  Schlüssel 5 existiert nicht
if (dict.ContainsValue("Zwei")) {
    Console.WriteLine("Wert gefunden");
}
// Wert gefunden

Mit foreach kannst du auf jedes einzelne Schlüssel-Wert-Paar eines Dictionaries zugreifen.

foreach (KeyValuePair<int, string> kvp in dict) {
    Console.WriteLine(kvp);
    Console.WriteLine($"Schlüssel: {kvp.Key}, Wert: {kvp.Value}");
}
[1, Eins]
Schlüssel: 1, Wert: Eins
[2, Zwei]
Schlüssel: 2, Wert: Zwei

Du kannst auch nur auf die Werte beziehungsweise Schlüssel eines Dictionaries zugreifen, wenn es dir beliebt.

Dictionary<int, string>.ValueCollection val_col = dict.Values;
foreach (string s in val_col) {
    Console.WriteLine(s);
}
// Eins
// Zwei
Dictionary<int, string>.KeyCollection key_col = dict.Keys;
foreach (int s in key_col) {
    Console.WriteLine(s);
}
// 1
// 2

2. Zusammenfassung: Das C# Dictionary

Dictionaries sind äußerst flexibel. Du kannst große Mengen an Daten in ihnen speichern und sie dynamisch nach Belieben erweitern oder verkürzen. Das zugreifen auf einzelne oder alle Schlüssel-Wert-Paare wird uns durch die verschiedenen Möglichkeiten wie foreach auch einfach gemacht.

Wenn du noch Fragen, Anmerkungen, Kritik oder Lob hast, schreib es bitte in die Kommentare!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren

Arrow-up

Programmieren lernen war noch nie so einfach.

Lerne von echten Experten durch echte Praxisprojekte und mit individueller Hilfe, falls du mal nicht weiterkommst!

keine Zahlungsdaten notwendig!