Freigeben über


Erlernen Sie das Verwalten von Datensammlungen mithilfe von List<T> in C#

Dieses Einführungstutorial bietet eine Einführung in die C#-Sprache und die Grundlagen der Klasse.

In diesem Lernprogramm lernen Sie C# interaktiv mit Ihrem Browser zum Schreiben von C#-Code und sehen die Ergebnisse der Kompilierung und Ausführung Ihres Codes. Sie enthält eine Reihe von Lektionen, mit denen Sammlungen und Arrays erstellt, geändert und untersucht werden. Sie arbeiten in erster Linie mit der List<T>-Klasse.

Ein einfaches Listenbeispiel

Tipp

Wenn ein Codeausschnittblock die Schaltfläche "Ausführen" enthält, öffnet diese Schaltfläche das interaktive Fenster oder ersetzt den vorhandenen Code im interaktiven Fenster. Wenn der Codeausschnitt keine Schaltfläche "Ausführen" enthält, können Sie den Code kopieren und dem aktuellen interaktiven Fenster hinzufügen.

Führen Sie den folgenden Code im interaktiven Fenster aus. Ersetzen Sie <name> durch Ihren Namen, und wählen Sie Ausführen aus:

List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Sie haben eine Liste mit Zeichenfolgen erstellt, dieser Liste drei Namen hinzugefügt und die Namen in allen CAPS gedruckt. Sie verwenden Konzepte, die Sie in früheren Lernprogrammen gelernt haben, um die Liste zu durchlaufen.

Der Code zum Anzeigen von Namen verwendet die Zeichenfolgeninterpolation Funktion. Wenn Sie einem string das $ Zeichen voranstellen, können Sie C#-Code in die Zeichenfolgendeklaration einbetten. Die tatsächliche Zeichenfolge ersetzt den C#-Code durch den generierten Wert. In diesem Beispiel wird {name.ToUpper()} mit dem jeweiligen in Großbuchstaben konvertierten Namen ersetzt, da Sie die String.ToUpper-Methode aufgerufen haben.

Lassen Sie uns weiter untersuchen.

Ändern von Listeninhalten

Die erstellte Sammlung verwendet den List<T>-Typ. Dieser Typ speichert Sequenzen von Elementen. Sie geben den Typ der Elemente zwischen den spitzen Klammern an.

Ein wichtiger Aspekt dieses List<T> Typs ist, dass er größer oder kleiner werden kann, sodass Sie Elemente hinzufügen oder entfernen können. Sie können die Ergebnisse sehen, indem Sie den Inhalt ändern, nachdem Sie ihn angezeigt haben. Fügen Sie den folgenden Code nach dem Code hinzu, den Sie bereits geschrieben haben (die Schleife, die den Inhalt druckt):

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 noch eine entfernt. Die Ausgabe dieses Codeblocks zeigt den anfänglichen Inhalt an und druckt dann eine leere Zeile und den neuen Inhalt.

Mit dem List<T> können Sie auch einzelne Elemente über den -Index referenzieren. Sie greifen mit den Token [ und ] auf Elemente zu. Fügen Sie den folgenden Code nach dem, was Sie bereits geschrieben haben, hinzu, und probieren Sie ihn aus:

Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");

Sie dürfen nicht über das Ende der Liste zugreifen. Sie können überprüfen, wie lange die Liste die eigenschaft Count verwendet. Fügen Sie den folgenden Code hinzu:

Console.WriteLine($"The list has {names.Count} people in it");

Wählen Sie erneut Ausführen aus, um die Ergebnisse anzuzeigen. In C# beginnen Indizes bei 0, sodass der größte gültige Index ein kleiner als die Anzahl der Elemente in der Liste ist.

Suchen und Sortieren von Listen

Unsere Beispiele verwenden relativ kleine Listen, aber Ihre Anwendungen können oft Listen mit viel mehr Elementen erstellen, manchmal mit Tausenden von Einträgen. Um Elemente in diesen größeren Sammlungen 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-1zurück. Probieren Sie es aus, um zu sehen, wie es funktioniert. Fügen Sie den folgenden Code nach dem, was Sie bisher geschrieben haben, hinzu:

var index = names.IndexOf("Felipe");
if (index == -1)
{
    Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
    Console.WriteLine($"The name {names[index]} is at index {index}");
}

index = names.IndexOf("Not Found");
if (index == -1)
{
    Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
    Console.WriteLine($"The name {names[index]} is at index {index}");
}

Möglicherweise wissen Sie nicht, ob sich ein Element in der Liste befindet, daher sollten Sie immer den von IndexOfzurückgegebenen Index überprüfen. Wenn es -1ist, wurde das Element nicht gefunden.

Die Elemente in Ihrer Liste können ebenfalls sortiert werden. Die Sort-Methode sortiert alle Elemente in der Liste in ihrer normalen Reihenfolge (alphabetisch für Zeichenfolgen). Fügen Sie diesen Code hinzu, und führen Sie den Vorgang erneut aus:

names.Sort();
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Listen mit anderen Typen

Bisher haben Sie den string Typ in Listen verwendet. Nun erstellen wir eine List<T> mithilfe eines anderen Typs. Erstellen wir eine Reihe von Zahlen. Löschen Sie den Code, den Sie bisher geschrieben haben, und ersetzen Sie ihn durch den folgenden Code:

List<int> fibonacciNumbers = [1, 1];

Dadurch wird eine Liste ganzzahliger Zahlen erstellt und die ersten beiden ganzzahligen Zahlen auf den Wert 1 festgelegt. Die Fibonacci Sequence, eine Sequenz von Zahlen, beginnt mit zwei 1's. Jede nächste Fibonacci-Zahl wird gefunden, indem die Summe der vorherigen beiden Zahlen verwendet 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

Schauen Sie sich an, ob Sie einige der Konzepte aus diesem und früheren Lektionen zusammenstellen können. Erweitern Sie das, was Sie bisher mit Fibonacci Numbers erstellt haben. Versuchen Sie, den Code zu schreiben, um die ersten 20 Zahlen in der Sequenz zu generieren. (Als Hinweis ist die 20. Fibonacci-Zahl 6765.)

Haben Sie etwas ähnliches gefunden?

:::code language="csharp" interactive="try-dotnet-method" source="./snippets/ListCollection/Program.cs" id="Answer":::

Bei jeder Iteration der Schleife nehmen Sie die letzten beiden Ganzzahlen in der Liste, addieren sie und fügen diesen Wert der Liste hinzu. Die Schleife wird wiederholt, bis Sie der Liste 20 Elemente hinzugefügt haben.

Sie haben das interaktive Tutorial zu „List“ abgeschlossen, das letzte interaktive Tutorial „Einführung in C#“. Sie können die .NET-Website besuchen, um das .NET SDK herunterzuladen, ein Projekt auf Ihrem Computer zu erstellen und den Code beizubehalten. Über den Abschnitt „Nächste Schritte“ gelangen Sie wieder zu diesen Tutorials.

Erfahren Sie mehr über .NET-Sammlungen in den folgenden Artikeln:

Herzlichen Glückwunsch, Sie haben das Listentutorial abgeschlossen. Sie können mit weiteren Tutorials in Ihrer eigenen Entwicklungsumgebung fortfahren.

Informationen über die Arbeit mit dem List-Typ finden Sie im .NET-Grundlagenartikel über -Auflistungen. Außerdem erfahren Sie mehr über viele andere Sammlungstypen.