Kursinhalt
C# Über die Grundlagen Hinaus
C# Über die Grundlagen Hinaus
Listenmethoden
Im vorherigen Kapitel haben wir gelernt, wie man eine Liste deklariert, initialisiert und Elemente hinzufügt. Außerdem haben wir uns angesehen, wie wir auf Elemente einer Liste zugreifen und sie durchlaufen können. In diesem Kapitel werden wir uns einige nützliche Listenmethoden ansehen.
1. Remove()
Die Remove
-Methode entfernt die erste Instanz eines Elements aus einer Liste.
Syntax: exampleList.remove(targetElement);
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("Banana"); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }
Falls kein solches Element gefunden wird, tut es einfach nichts:
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("some element"); // trying to remove an unknown element Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }
2. RemoveAt()
Die RemoveAt
-Methode entfernt ein Element an einem bestimmten Index.
Syntax: exampleList.RemoveAt(index);
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.RemoveAt(1); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }
3. Clear
Die Clear
-Methode entfernt einfach alle Elemente aus einer Liste. Sie nimmt keine Argumente an.
Syntax: exampleList.Clear();
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Clear(); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }
4. Einfügen
Die Methode Insert
fügt ein Element an einem angegebenen Index in die Liste ein.
Syntax: exampleList.Insert(index, elementToInsert);
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<int> numbers = new List<int> { 2, 4, 6, 10, 12 }; Console.Write("Before: "); foreach (int number in numbers) Console.Write(number + " "); numbers.Insert(3, 8); Console.Write("\nAfter: "); foreach (int number in numbers) Console.Write(number + " "); } } }
Wir können die geschweiften Klammern {}
weglassen, wenn sich nur eine einzelne Anweisung innerhalb einer if-Bedingung, einer for-Schleife oder einer foreach-Schleife befindet. Zum Beispiel:
index
foreach(int number in numbers) { Console.Write(number + " "); }
Der obige Ausschnitt ist derselbe wie:
index
foreach(int number in numbers) Console.Write(number + " ");
Wenn sich bereits ein Element an dem angegebenen Index befindet, wird es nach rechts verschoben, ebenso wie die verbleibenden Elemente des Arrays danach - falls vorhanden. Das folgende Diagramm veranschaulicht den Prozess:
5. Contains()
Die Contains
-Methode überprüft, ob eine Liste ein bestimmtes Element enthält. Sie gibt einen booleschen Wert zurück (true
oder false
).
Syntax: exampleList.Contains(element);
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; Console.WriteLine("Contains 'o': " + vowels.Contains('o')); } } }
6. IndexOf()
Die Methode IndexOf
gibt den Index des ersten Vorkommens eines Elements in einer Liste zurück.
Syntax: exampleList.IndexOf(element);
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; vowels.Remove('o'); Console.WriteLine("Index of 'o': " + vowels.IndexOf('o')); } } }
Wenn das Element nicht in der Liste existiert, gibt es einfach -1
zurück:
Die Methode indexOf
ist besonders nützlich, wenn wir auf ein Element per Index zugreifen möchten, dessen Index wir jedoch nicht kennen. Zum Beispiel in den vowels
, möchten wir auf das Element o
per Index zugreifen und es in ein großes O
ändern:
index
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; int targetIndex = vowels.IndexOf('o'); Console.WriteLine(vowels[targetIndex]); vowels[targetIndex] = 'O'; Console.WriteLine(vowels[targetIndex]); } } }
1. Was macht die Methode Remove()
?
2. Was ist der schnellste Weg, um zu überprüfen, ob eine Liste ein bestimmtes Element enthält?
3. Welche Methode wird verwendet, um alle Elemente aus einer Liste zu entfernen?
4. Was wird die Ausgabe des folgenden Codes sein?
Danke für Ihr Feedback!