.NET-HILFE

C# Liste (Wie es für Entwickler funktioniert)

Einführung

Listen sind vielseitige und dynamische Datenstrukturen, die zum Speichern und Bearbeiten von Datensammlungen in C# verwendet werden. Listen sind Teil des System.Collections.Generic-Namensraums, der eine Reihe leistungsfähiger, typsicherer Sammlungsklassen und stark typisierter Objekte bereitstellt. Dieses anfängerfreundliche Tutorial führt Sie durch die Grundlagen der Verwendung von C#-Listen, einschließlich des Erstellens/Hinzufügens von Elementen, des Zugriffs auf einen bestimmten Index oder das erste Vorkommen, des Änderns eines bestimmten Elements und des Entfernens von Elementen sowie einiger häufiger Anwendungsfälle.

Listen erstellen

Um die List-Klasse zu verwenden, müssen Sie zuerst den generischen Namespace System.Collections in Ihrem Code einbinden:

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
$vbLabelText   $csharpLabel

Nach dem Hinzufügen eines generischen Namensraums erstellen Sie ein neues List-Objekt, indem Sie den Datentyp aller Elemente, die Sie in spitzen Klammern (< >) speichern möchten, angeben. Hier ein Beispiel für die Erstellung einer Liste von Ganzzahlen:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
$vbLabelText   $csharpLabel

Sie können auch Elemente in eine Liste mit einigen Anfangswerten oder durch die angegebene Sammlung definiert wie folgt einfügen:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
$vbLabelText   $csharpLabel

Im obigen Beispiel können wir auch die Standardanfangskapazität der Liste angeben. Die angegebene Anfangskapazität ist die maximale Standardkapazität der Liste.

Methoden der Liste

Hinzufügen der Anzahl von Elementen zu einer Liste

Um Elemente zu Ihrer internen Datenstruktur Liste hinzuzufügen, verwenden Sie die Add()-Methode:

numbers.Add(1);     // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1);     // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' adds first element
numbers.Add(2)
numbers.Add(3)
$vbLabelText   $csharpLabel

Sie können der Liste auch eine Reihe von Elementen einer angegebenen Sammlung mithilfe der AddRange-Methode hinzufügen:

List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
$vbLabelText   $csharpLabel

Zugriff auf Listenelemente

Sie können auf einzelne Elemente einer Liste mit einem Index zugreifen, genau wie bei Arrays:

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
$vbLabelText   $csharpLabel

Beachten Sie, dass die Listen einen nullbasierten Index haben, d. h. das erste Element hat einen Index von 0. Wenn das Element vorhanden ist, wird es im obigen Beispiel in der Zeichenfolge gespeichert.

Ändern von Listenelementen

Um ein Element in einer Liste zu ändern, weisen Sie dem Element am gewünschten Index einfach einen neuen Wert zu, wobei Sie den nullbasierten Index berücksichtigen:

fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
$vbLabelText   $csharpLabel

Das zweite Element in der Obstliste ist nun "Heidelbeere" statt "Banane".

Entfernen von Elementen aus einer Liste

Um ein Element aus einer Liste zu entfernen, können Sie die Remove-Methode verwenden, die das erste Vorkommen eines angegebenen Elements entfernt:

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
$vbLabelText   $csharpLabel

Alternativ können Sie die RemoveAt-Methode verwenden, um ein Element am angegebenen Index zu entfernen, wenn das Element existiert:

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
$vbLabelText   $csharpLabel

Um alle Elemente aus einer Liste zu entfernen, verwenden Sie die Clear-Methode:

fruits.Clear();
fruits.Clear();
fruits.Clear()
$vbLabelText   $csharpLabel

Suche nach Elementen in einer Liste

Sie können die Methode Contains() verwenden, um zu überprüfen, ob eine Liste ein bestimmtes Element enthält:

bool containsApple = fruits.Contains("apple");      // true
bool containsApple = fruits.Contains("apple");      // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
$vbLabelText   $csharpLabel

Um den Index des ersten Vorkommens eines Elements zu finden, verwenden Sie die IndexOf-Methode:

int appleIndex = fruits.IndexOf("apple");           // 0
int appleIndex = fruits.IndexOf("apple");           // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
$vbLabelText   $csharpLabel

Wenn das Element nicht gefunden wird, gibt IndexOf -1 zurück.

Schleife durch eine Liste

Um durch die Elemente in einer Liste zu iterieren, können Sie eine foreach-Schleife verwenden. Mit der foreach-Schleife können Sie auch auf alle Elemente des Arrays zugreifen.

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

Alternativ können Sie eine for-Schleife mit der Count-Eigenschaft verwenden, die die Anzahl der Elemente in der Liste zurückgibt:

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
For i As Integer = 0 To fruits.Count - 1
	Console.WriteLine(fruits(i))
Next i
$vbLabelText   $csharpLabel

Sortieren einer Liste

Um eine Liste in aufsteigender Reihenfolge zu sortieren, verwenden Sie die Sort-Methode:

List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()

' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
$vbLabelText   $csharpLabel

Um eine Liste in absteigender Reihenfolge zu sortieren, können Sie die Sort-Methode mit einem benutzerdefinierten Vergleichs-Predicate-Delegate verwenden:

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))

' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
$vbLabelText   $csharpLabel

Für komplexere Sortierungen können Sie eine benutzerdefinierte IComparer-Klasse implementieren oder LINQ (Language Integrated Query) verwenden. Der binäre Suchalgorithmus arbeitet mit sortierten Listen.

LINQ mit Listen verwenden

Mit LINQ können Sie leistungsstarke Abfragen und Transformationen für Sammlungen, einschließlich Listen, durchführen. Um LINQ zu verwenden, müssen Sie zuerst den Namespace System.Linq in Ihren Klassenprogrammcode einfügen:

using System.Linq;
using System.Linq;
Imports System.Linq
$vbLabelText   $csharpLabel

Hier sind einige Beispiele für LINQ-Abfragen auf einer Liste:

Filtern einer Liste

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
$vbLabelText   $csharpLabel

Zuordnung (Transformation) von Elementen in einer Liste

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
$vbLabelText   $csharpLabel

Ermitteln der Mindest- und Höchstwerte in einer Liste

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
$vbLabelText   $csharpLabel

Umwandlung einer Liste in ein Array

Um eine Liste in ein Array zu konvertieren, können Sie die ToArray-Methode verwenden:

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
$vbLabelText   $csharpLabel

Exportieren von Listendaten in eine PDF-Datei mit IronPDF

In diesem Abschnitt werden wir demonstrieren, wie man die Daten in einer Liste mit der IronPDF-Bibliothek in eine PDF-Datei exportiert. Dies kann hilfreich sein, wenn Sie einen Bericht oder eine druckbare Version Ihrer Daten erstellen möchten.

Laden Sie zunächst das IronPDF NuGet-Paket herunter und installieren Sie es in Ihrem Projekt:

Install-Package IronPdf

Als nächstes fügen Sie den IronPdf-Namensraum in Ihren Code ein:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Nun erstellen wir eine einfache Funktion, die eine List von Zeichenfolgen in eine HTML-Tabelle umwandelt und diese dann in eine PDF-Datei exportiert:

using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF specified object
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
    // Create an HTML table from the list data
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("<table><tr><th>Item</th></tr>");

    foreach (string item in data)
    {
        htmlBuilder.Append($"<tr><td>{item}</td></tr>");
    }

    htmlBuilder.Append("</table>");

    // Convert the HTML table to a PDF using IronPDF specified object
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    // Save the PDF to the specified file path
    pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports IronPdf
Imports System.Text
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
	' Create an HTML table from the list data
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("<table><tr><th>Item</th></tr>")

	For Each item As String In data
		htmlBuilder.Append($"<tr><td>{item}</td></tr>")
	Next item

	htmlBuilder.Append("</table>")

	' Convert the HTML table to a PDF using IronPDF specified object
	Dim renderer = New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

	' Save the PDF to the specified file path
	pdf.SaveAs(pdfFilePath)
End Sub
$vbLabelText   $csharpLabel

Um diese Funktion im obigen Beispiel zu verwenden, rufen Sie sie einfach mit Ihrer Liste und dem gewünschten PDF-Dateipfad auf:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
$vbLabelText   $csharpLabel

Dies wird eine PDF-Datei namens "Fruits.pdf" erzeugen, die eine Tabelle mit der Standardkapazitätsliste von Früchten enthält, indem HTML mit IronPDF in PDF umgewandelt wird, die den definierten Bedingungen entspricht. Sie können die Funktion ExportListToPdf anpassen, um Ihren Anforderungen gerecht zu werden, indem Sie beispielsweise benutzerdefinierte Stile für die HTML-Tabelle oder zusätzlichen Inhalt zum PDF hinzufügen.

C#-Liste (Wie sie für Entwickler funktioniert) Abbildung 1 - HTML zu PDF

Schlussfolgerung

In diesem einsteigerfreundlichen Tutorial haben wir die Grundlagen der Verwendung von C#-Listen behandelt und gezeigt, wie IronPDF integriert werden kann, um Listendaten in eine PDF-Datei zu exportieren. Durch die Einbindung von IronPDF in Ihre Projekte können Sie problemlos Berichte, Rechnungen oder andere druckbare Dokumente aus Ihren C#-Projekten erstellen.

IronPDF bietet eine kostenlose Testversion an, die es Ihnen ermöglicht, die Funktionen zu testen, bevor Sie sich für einen Kauf entscheiden. Wenn Sie sich entscheiden, IronPDF nach der Testphase weiter zu verwenden, beginnen die Lizenzkosten bei $749, wobei mehrere Lizenzierungsoptionen verfügbar sind, um Ihre Bedürfnisse zu erfüllen.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
C# This (Wie es für Entwickler funktioniert)
NÄCHSTES >
Was ist Visual Studio (Wie es für Entwickler funktioniert)