Informationen zum Verwalten von Datensammlungen mithilfe des generischen Listentyps
In diesem Tutorial lernen Sie interaktiv die Grundlagen von C# kennen, indem Sie mit Ihrem Browser einen C#-Code schreiben und die Ergebnisse der Kompilierung und Ausführung Ihres Codes sehen. Es enthält eine Reihe von Lektionen zum Erstellen, Ändern und Untersuchen von Sammlungen und Arrays.
Tipp
Verwenden Sie die Tastenkombination (STRG + v oder BEFEHL + v), um einen Codeschnipsel im Fokusmodus einzufügen.
Erstellen von Listen
Führen Sie den folgenden Code im interaktiven Fenster aus. Wählen Sie die Schaltfläche Enter focus mode (Fokusmodus aktivieren) aus. Geben Sie anschließend den folgenden Codeblock in das interaktive Fenster ein (ersetzen Sie <name>
durch Ihren Namen), und wählen Sie Ausführen aus:
var names = new List<string> { "<name>", "Ana", "Felipe" };
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Wenn Sie dies in Ihrer Umgebung ausführen, sollten Sie stattdessen die Anleitungen für die lokale Version befolgen.
Sie haben eine Liste mit Zeichenfolgen erstellt, dieser Liste drei Namen hinzugefügt und die Namen in Großbuchstaben ausgegeben. Sie verwenden Konzepte, die Sie in früheren Tutorials kennengelernt haben, um die Liste zu durchlaufen.
Im Code zum Anzeigen von Namen wird das Feature Zeichenfolgeninterpolation genutzt. Wenn Sie einem string
ein $
-Zeichen voranstellen, können Sie C#-Code in die Zeichenfolgendeklaration einbetten. Der Wert, den dieser C#-Code generiert, ist eine Zeichenfolge, durch die der C#-Code ersetzt wird. In diesem Beispiel wird {name.ToUpper()}
mit dem jeweiligen in Großbuchstaben konvertierten Namen ersetzt, da Sie die String.ToUpper-Methode aufgerufen haben.
Setzen wir nun unsere Forschungen fort.
Ändern von Listeninhalten
Die Sammlung, die Sie erstellt haben, nutzt den List<T>-Typ. Dieser Typ speichert Elementsequenzen. Sie geben den Typ der Elemente zwischen den spitzen Klammern an.
Ein wichtiger Aspekt dieses List<T>-Typs ist, dass er wachsen oder schrumpfen kann, sodass Sie Elemente hinzufügen oder entfernen können. Sie sehen die Ergebnisse, indem Sie den Inhalt ändern, nachdem Sie ihn angezeigt haben. Fügen Sie den folgenden Code unter dem bereits geschriebenen Code hinzu (unter der Schleife, die den Inhalt ausgibt):
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Sie haben am Ende der Liste zwei weitere Namen hinzugefügt. Sie haben auch einen entfernt. In der Ausgabe dieses Codeblocks wird der Anfangsinhalt angezeigt, und anschließend wird eine neue Zeile und der neue Inhalt ausgegeben.
List<T> ermöglicht Ihnen auch, mithilfe des Indexes auf einzelne Elemente zu verweisen. Sie greifen mit den Zeichen [
und ]
auf Elemente zu. Fügen Sie den folgenden Code unter dem Code hinzu, den Sie bereits geschrieben haben, und probieren Sie es aus:
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
Sie haben keine über das Ende der Liste hinausgehenden Zugriffsrechte. Sie können mit der Count-Eigenschaft überprüfen, wie lang die Liste ist. Fügen Sie folgenden Code hinzu, um es auszuprobieren:
Console.WriteLine($"The list has {names.Count} people in it");
Wählen Sie erneut Ausführen aus, um die Ergebnisse anzuzeigen. Denken Sie daran, dass die Indizes in C# mit 0 (null) beginnen, sodass der größte gültige Index um eins kleiner ist als die Anzahl der Elemente in der Liste.
Suchen in und Sortieren von Listen
In unseren Beispielen werden relativ kleine Listen verwendet, aber Ihre Anwendungen erstellen möglicherweise häufig Listen mit viel mehr Elementen, die manchmal in die Tausende gehen. Um in diesen größeren Sammlungen Elemente zu finden, müssen Sie die Liste nach verschiedenen Elementen durchsuchen. Die IndexOf-Methode sucht nach einem Element und gibt den Index des Elements zurück. Wenn das Element nicht in der Liste enthalten ist, gibt IndexOf
-1
zurück. Probieren Sie dies aus, um die Funktionsweise kennenzulernen. Fügen Sie den folgenden Code unter dem Code hinzu, den Sie bereits geschrieben haben:
var index = names.IndexOf("Felipe");
if (index != -1)
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
var notFound = names.IndexOf("Not Found");
Console.WriteLine($"When an item is not found, IndexOf returns {notFound}");
Da Sie vielleicht nicht wissen, ob ein Element in der Liste ist, sollten Sie den von IndexOf zurückgegebenen Index immer überprüfen. Bei -1
wurde das Element nicht gefunden.
Die Elemente in der Liste können auch sortiert werden. Die Sort-Methode sortiert alle Elemente in der Liste in der normalen Reihenfolge (Zeichenfolgen alphabetisch). Fügen Sie diesen Code hinzu, und führen Sie das Programm erneut aus:
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Listen mit anderen Typen
Sie haben bisher den string
-Typ in Listen verwendet. Nun erstellen wir eine List<T> mithilfe eines anderen Typs. Zunächst erstellen wir einen Satz von Zahlen. Löschen Sie den bisher geschriebenen Code, und ersetzen Sie ihn durch den folgenden Code:
var fibonacciNumbers = new List<int> {1, 1};
Damit wird eine Liste von Ganzzahlen erstellt und für die ersten beiden Ganzzahlen der Wert 1 festgelegt. Die Fibonacci-Folge (Folge von Zahlen) beginnt mit zwei Einsen. Jede nächste Fibonacci-Zahl wird ermittelt, indem die Summe der beiden vorherigen Zahlen gebildet wird. Fügen Sie diesen Code hinzu:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Wählen Sie Ausführen, um die Ergebnisse anzuzeigen.
Herausforderung
Versuchen Sie, einige dieser Konzepte aus dieser Lektion und früheren Lektionen in einen Zusammenhang zu bringen. Erweitern Sie das, was Sie bisher bezüglich Fibonacci-Zahlen erstellt haben. Versuchen Sie, den Code zum Generieren der ersten 20 Zahlen der Sequenz zu schreiben. (Hinweis: Die 20. Fibonacci-Zahl lautet 6765.)
Übung abgeschlossen
Sieht ihr Code ungefähr wie der Folgende aus?
var fibonacciNumbers = new List<int> {1, 1};
while (fibonacciNumbers.Count < 20)
{
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
}
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Mit jeder Iteration der Schleife werden die letzten beiden Ganzzahlen in der Liste summiert, und dieser Wert wird der Liste hinzugefügt. Die Schleife wird wiederholt, bis der Liste 20 Elemente hinzugefügt worden sind.
Herzlichen Glückwunsch!
Sie haben das interaktive Listentutorial abgeschlossen. Das ist die finale Einführung in das interaktive C#-Tutorial. Sie können zur .NET-Website navigieren, um das .NET SDK herunterzuladen, ein Projekt auf Ihrem Computer zu erstellen und mit dem Programmieren fortzufahren. Über den Abschnitt „Nächste Schritte“ gelangen Sie wieder zu diesen Tutorials.
Weitere Informationen zu .NET-Sammlungen finden Sie in den folgenden Artikeln:
Liegt ein Problem mit diesem Abschnitt vor? Wenn ja, senden Sie uns Feedback, damit wir den Abschnitt verbessern können.