C# Sammlungen: Ein Anfängerleitfaden

Hallo da draußen, zukünftige Programmierer! Heute machen wir uns auf eine aufregende Reise in die Welt der C# Sammlungen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – ich werde Ihr freundlicher Guide sein und alles Schritt für Schritt erklären. Tauchen wir ein!

C# - Collections

Was sind Sammlungen?

Stellen Sie sich vor, Sie organisieren eine Party und müssen alle Ihre Gäste im Auge behalten. Sie könnten jeden Namen auf ein separates Stück Papier schreiben, aber das wäre schmutzig und ineffizient. Stattdessen würden Sie wahrscheinlich eine Gästeliste verwenden. In C# sind Sammlungen wie diese Gästeliste – sie helfen uns, Gruppen verwandter Objekte zu organisieren und zu verwalten.

Warum Sammlungen verwenden?

Sammlungen sind unglaublich nützlich, weil sie es uns erlauben: 1.Mehrere Elemente in einer einzigen Variablen zu speichern 2.Elemente einfach hinzuzufügen oder zu entfernen 3.Unsere Daten zu durchsuchen und zu sortieren 4.Operations auf Gruppen von Daten durchzuführen

Nun schauen wir uns einige der häufigsten Arten von Sammlungen in C# an.

Listen: Dein flexibler Freund

Was ist eine Liste?

Eine Liste ist wie ein dynamisches Array, das wachsen oder schrumpfen kann, wie es nodig ist. Sie ist perfekt, wenn du nicht genau weißt, wie viele Elemente du speichern musst.

Wie man eine Liste verwendet

Lassen Sie uns eine Liste unserer Lieblingsfrüchte erstellen:

List<string> fruits = new List<string>();
fruits.Add("Apfel");
fruits.Add("Banane");
fruits.Add("Kirsche");

Console.WriteLine($"Wir haben {fruits.Count} Früchte.");
Console.WriteLine($"Die zweite Frucht ist {fruits[1]}.");

In diesem Beispiel haben wir:

  1. Eine neue Liste von Strings erstellt
  2. Drei Früchte zu unserer Liste hinzugefügt
  3. Die Anzahl der Früchte gedruckt (verwendet die Count Eigenschaft)
  4. Die zweite Frucht mit einem Index aufgerufen (denken Sie daran, dass die Indizierung bei 0 beginnt!)

Ausgabe:

Wir haben 3 Früchte.
Die zweite Frucht ist Banane.

Wörterbücher: Dein Schlüssel zum Erfolg

Was ist ein Wörterbuch?

Ein Wörterbuch ist wie ein echtes Wörterbuch – es speichert Schlüssel-Wert-Paare. Jeder Schlüssel muss eindeutig sein, genauso wie jedes Wort in einem Wörterbuch seine eigene Definition hat.

Ein Wörterbuch verwenden

Lassen Sie uns ein Wörterbuch der Fruchtfarben erstellen:

Dictionary<string, string> fruitColors = new Dictionary<string, string>();
fruitColors.Add("Apfel", "Rot");
fruitColors.Add("Banane", "Gelb");
fruitColors.Add("Traube", "Lila");

Console.WriteLine($"Ein Apfel ist {fruitColors["Apfel"]}.");

if (fruitColors.ContainsKey("Kirsche"))
{
Console.WriteLine($"Eine Kirsche ist {fruitColors["Kirsche"]}.");
}
else
{
Console.WriteLine("Wir wissen nicht, welche Farbe eine Kirsche hat.");
}

Hier haben wir:

  1. Ein Wörterbuch mit String-Schlüsseln und String-Werten erstellt
  2. Drei Frucht-Farben-Paare hinzugefügt
  3. Eine Farbe mit ihrem Frucht-Schlüssel aufgerufen
  4. Überprüft, ob ein Schlüssel existiert, bevor wir versucht, seinen Wert aufzurufen

Ausgabe:

Ein Apfel ist Rot.
Wir wissen nicht, welche Farbe eine Kirsche hat.

Warteschlange: Erster kommt, erster wird bedient

Was ist eine Warteschlange?

Eine Warteschlange ist wie eine Schlange im Supermarkt – die erste Person in der Schlange wird zuerst bedient. In Programmierbegriffen ist es eine "First-In-First-Out" (FIFO) Datenstruktur.

Warteschlange in Aktion

Lassen Sie uns eine einfache Druckwarteschlange simulieren:

Queue<string> printQueue = new Queue<string>();
printQueue.Enqueue("Report.doc");
printQueue.Enqueue("Picture.jpg");
printQueue.Enqueue("Spreadsheet.xlsx");

Console.WriteLine($"Elemente in der Warteschlange: {printQueue.Count}");
Console.WriteLine($"Drucken: {printQueue.Dequeue()}");
Console.WriteLine($"Nächste in der Reihe: {printQueue.Peek()}");
Console.WriteLine($"Verbleibende Elemente: {printQueue.Count}");

In diesem Beispiel haben wir:

  1. Eine Warteschlange von Strings erstellt
  2. Drei Elemente zur Warteschlange hinzugefügt (Enqueue)
  3. Das erste Element entfernt (Dequeue)
  4. Ein Blick auf das nächste Element geworfen, ohne es zu entfernen (Peek)

Ausgabe:

Elemente in der Warteschlange: 3
Drucken: Report.doc
Nächste in der Reihe: Picture.jpg
Verbleibende Elemente: 2

Stapel: Letzter rein, erster raus

Was ist ein Stapel?

Ein Stapel ist wie ein Stapel von Tellern – du fügst oben hinzu und nimmst oben heraus. Es ist eine "Last-In-First-Out" (LIFO) Datenstruktur.

Stapel aufbauen

Lassen Sie uns einen Stapel verwenden, um Undo-Operationen in einem Texteditor zu verfolgen:

Stack<string> undoStack = new Stack<string>();
undoStack.Push("Schreibe 'Hallo'");
undoStack.Push("Schreibe ' Welt'");
undoStack.Push("Lösche 'Welt'");

Console.WriteLine($"Undo-Operationen: {undoStack.Count}");
Console.WriteLine($"Letzte Aktion: {undoStack.Peek()}");
Console.WriteLine($"Rückgängig machen: {undoStack.Pop()}");
Console.WriteLine($"Verbleibende Operationen: {undoStack.Count}");

Hier haben wir:

  1. Einen Stapel von Strings erstellt
  2. Drei Aktionen auf den Stapel gelegt (Push)
  3. Ein Blick auf die oberste Aktion geworfen
  4. Die oberste Aktion entfernt und zurückgegeben (Pop)

Ausgabe:

Undo-Operationen: 3
Letzte Aktion: Lösche 'Welt'
Rückgängig machen: Lösche 'Welt'
Verbleibende Operationen: 2

Tabelle der Sammlungsmethoden

Hier ist eine praktische Tabelle der häufigsten Methoden für diese Sammlungen:

Methode Liste Wörterbuch Warteschlange Stapel
Add - -
Remove - -
Clear
Contains ✓ (ContainsKey)
Count
Enqueue - - -
Dequeue - - -
Push - - -
Pop - - -
Peek - -

Fazit

Glückwunsch! Sie haben gerade Ihre ersten Schritte in die Welt der C# Sammlungen gemacht. Erinnern Sie sich daran, dass jede Sammlung ihre Stärken hat, und die richtige Wahl kann Ihren Code effizienter und lesbarer machen.

Während Sie Ihre Programmierreise fortsetzen, werden Sie noch mehr Möglichkeiten entdecken, diese Sammlungen zu verwenden. Scheuen Sie sich nicht, zu experimentieren – das ist, wie wir alle lernen und wachsen als Entwickler.

Frohes Coden und möge Ihre Sammlungen immer gut organisiert sein!

Credits: Image by storyset