Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Was Sind Listen? | Datenstrukturen & Dateiverarbeitung
C# Jenseits der Grundlagen

bookWas Sind Listen?

Prerequisites
Voraussetzungen

Stellen Sie sich vor, wir haben eine Situation, in der wir die Namen aller Studierenden speichern möchten, die an einem bestimmten Kurs teilnehmen. Die erste Lösung, die uns einfällt, ist die Erstellung eines Arrays:

index.cs

index.cs

copy
123456
using System; class Program { string[] studentNames = new string[50]; }

Wenn jedoch zu einem bestimmten Zeitpunkt mehr als 50 Studierende vorhanden sind, können deren Namen nicht gespeichert werden. Ebenso führen weniger als 50 Studierende dazu, dass die ungenutzten Plätze im Array Speicher verschwenden – dies wird insbesondere bei sehr großen Arrays problematisch.

Hier benötigen wir eine neue Struktur, die eine variable Anzahl von Elementen speichern kann. Glücklicherweise existiert eine solche Struktur bereits, sie wird als Liste bezeichnet.

Listen ähneln Arrays sehr, jedoch ist die Anzahl der in einer Liste gespeicherten Elemente veränderbar.

Note
Hinweis

Es ist möglich, bestehende Elemente in einem Array zu verändern, jedoch können keine neuen Einträge hinzugefügt werden.

Folgendes ist die Syntax zur Deklaration einer leeren Liste:

Mit dieser Syntax kann eine Liste zur Speicherung der Namen von Studierenden erstellt werden:

index.cs

index.cs

copy
12345678910
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }

Es ist wichtig zu beachten, dass das Modul Generic importiert werden muss, um Listen verwenden zu können.

index.cs

index.cs

copy
1
using System.Collections.Generic;

Fügen Sie einfach diese Zeile unter using System; ein, um das erforderliche Modul zu importieren.

Add()-Methode

Elemente können einer Liste mit der Methode Add hinzugefügt werden:

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }

Der obige Code fügt der Liste students vier Elemente hinzu.

Wie ein Array vom Typ string nur string-Elemente enthalten kann, kann auch eine Liste vom Typ string nur string-Elemente aufnehmen.

Indizierung

Das erste Element ist Anna, daher hat es den Index 0, während Laura den Index 1 hat und so weiter. Elemente einer Liste können wie bei einem Array über die Indizierung angesprochen werden:

index.cs

index.cs

copy
1234567891011121314151617
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }

Count()-Methode

Die Länge einer Liste kann über das Attribut Count abgerufen werden:

index.cs

index.cs

copy
123456789101112131415161718
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }

Dynamische Länge

Beachte, dass die Länge einer Liste dynamisch (veränderbar) ist und sich beim Hinzufügen von Elementen ändert:

index.cs

index.cs

copy
1234567891011121314151617181920
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }

Initialisierung

Eine Liste kann auch mit einigen Elementen unter Verwendung der folgenden Syntax initialisiert werden:

List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs

index.cs

copy
12345678910111213141516
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }

Durchlaufen von Listen

Durchlaufen einer Liste ähnlich wie bei Arrays

Verwendung einer for-Schleife

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }

Verwendung einer foreach-Schleife

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Note
Tipp:

Um die Deklarationssyntax zu verkürzen, kann auch die implizite Deklaration verwendet werden. Zur Erinnerung: Eine explizite Deklaration liegt vor, wenn der Datentyp bei der Variablendeklaration angegeben wird.

index.cs

index.cs

copy
1
float number = 7.9f;

Bei der impliziten Deklaration hingegen kann einfach das Schlüsselwort var verwendet werden und der Compiler leitet den Datentyp der Variablen automatisch anhand des zugewiesenen Werts ab:

index.cs

index.cs

copy
1
var number = 7.9f;

Auch bei der Deklaration von Listen kann die implizite Deklaration verwendet werden:

index.cs

index.cs

copy
1
var numbers = new List<int> { 1, 2, 3, 4, 5 };

1. Was wird die Ausgabe des folgenden Codes sein:

2. Welches Modul muss importiert werden, um Listen zu verwenden?

3. Welche Methode wird verwendet, um die Größe (Länge) einer Liste abzurufen?

question mark

Was wird die Ausgabe des folgenden Codes sein:

Select the correct answer

question mark

Welches Modul muss importiert werden, um Listen zu verwenden?

Select the correct answer

question mark

Welche Methode wird verwendet, um die Größe (Länge) einer Liste abzurufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 2.04

bookWas Sind Listen?

Swipe um das Menü anzuzeigen

Prerequisites
Voraussetzungen

Stellen Sie sich vor, wir haben eine Situation, in der wir die Namen aller Studierenden speichern möchten, die an einem bestimmten Kurs teilnehmen. Die erste Lösung, die uns einfällt, ist die Erstellung eines Arrays:

index.cs

index.cs

copy
123456
using System; class Program { string[] studentNames = new string[50]; }

Wenn jedoch zu einem bestimmten Zeitpunkt mehr als 50 Studierende vorhanden sind, können deren Namen nicht gespeichert werden. Ebenso führen weniger als 50 Studierende dazu, dass die ungenutzten Plätze im Array Speicher verschwenden – dies wird insbesondere bei sehr großen Arrays problematisch.

Hier benötigen wir eine neue Struktur, die eine variable Anzahl von Elementen speichern kann. Glücklicherweise existiert eine solche Struktur bereits, sie wird als Liste bezeichnet.

Listen ähneln Arrays sehr, jedoch ist die Anzahl der in einer Liste gespeicherten Elemente veränderbar.

Note
Hinweis

Es ist möglich, bestehende Elemente in einem Array zu verändern, jedoch können keine neuen Einträge hinzugefügt werden.

Folgendes ist die Syntax zur Deklaration einer leeren Liste:

Mit dieser Syntax kann eine Liste zur Speicherung der Namen von Studierenden erstellt werden:

index.cs

index.cs

copy
12345678910
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }

Es ist wichtig zu beachten, dass das Modul Generic importiert werden muss, um Listen verwenden zu können.

index.cs

index.cs

copy
1
using System.Collections.Generic;

Fügen Sie einfach diese Zeile unter using System; ein, um das erforderliche Modul zu importieren.

Add()-Methode

Elemente können einer Liste mit der Methode Add hinzugefügt werden:

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }

Der obige Code fügt der Liste students vier Elemente hinzu.

Wie ein Array vom Typ string nur string-Elemente enthalten kann, kann auch eine Liste vom Typ string nur string-Elemente aufnehmen.

Indizierung

Das erste Element ist Anna, daher hat es den Index 0, während Laura den Index 1 hat und so weiter. Elemente einer Liste können wie bei einem Array über die Indizierung angesprochen werden:

index.cs

index.cs

copy
1234567891011121314151617
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }

Count()-Methode

Die Länge einer Liste kann über das Attribut Count abgerufen werden:

index.cs

index.cs

copy
123456789101112131415161718
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }

Dynamische Länge

Beachte, dass die Länge einer Liste dynamisch (veränderbar) ist und sich beim Hinzufügen von Elementen ändert:

index.cs

index.cs

copy
1234567891011121314151617181920
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }

Initialisierung

Eine Liste kann auch mit einigen Elementen unter Verwendung der folgenden Syntax initialisiert werden:

List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs

index.cs

copy
12345678910111213141516
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }

Durchlaufen von Listen

Durchlaufen einer Liste ähnlich wie bei Arrays

Verwendung einer for-Schleife

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }

Verwendung einer foreach-Schleife

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Note
Tipp:

Um die Deklarationssyntax zu verkürzen, kann auch die implizite Deklaration verwendet werden. Zur Erinnerung: Eine explizite Deklaration liegt vor, wenn der Datentyp bei der Variablendeklaration angegeben wird.

index.cs

index.cs

copy
1
float number = 7.9f;

Bei der impliziten Deklaration hingegen kann einfach das Schlüsselwort var verwendet werden und der Compiler leitet den Datentyp der Variablen automatisch anhand des zugewiesenen Werts ab:

index.cs

index.cs

copy
1
var number = 7.9f;

Auch bei der Deklaration von Listen kann die implizite Deklaration verwendet werden:

index.cs

index.cs

copy
1
var numbers = new List<int> { 1, 2, 3, 4, 5 };

1. Was wird die Ausgabe des folgenden Codes sein:

2. Welches Modul muss importiert werden, um Listen zu verwenden?

3. Welche Methode wird verwendet, um die Größe (Länge) einer Liste abzurufen?

question mark

Was wird die Ausgabe des folgenden Codes sein:

Select the correct answer

question mark

Welches Modul muss importiert werden, um Listen zu verwenden?

Select the correct answer

question mark

Welche Methode wird verwendet, um die Größe (Länge) einer Liste abzurufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 1
some-alt