ArrayList vs List in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. ArrayLists in C#
  2. Listen in C#
  3. ArrayLists vs Lists in C#
ArrayList vs List in C#

In diesem Tutorial werden die Unterschiede und Ähnlichkeiten zwischen ArrayLists und Lists in C# erläutert.

ArrayLists in C#

Die Klasse ArrayList wird verwendet, um eine ArrayList in C# zu deklarieren. In einer ArrayList werden Objektreferenzen gespeichert. Dies bedeutet, dass eine ArrayList Daten mehrerer Datentypen wie Integer, String, Float usw. darin speichern kann. Das folgende Codebeispiel zeigt uns, wie wir eine ArrayList in C# initialisieren können.

ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
  Console.WriteLine(x);
}

Ausgabe:

1
Pony

Im obigen Code haben wir die Instanz der Klasse ArrayList - array1 erstellt und darin verschiedene Werte verschiedener Datentypen gespeichert.

Listen in C#

Die generischen Listen werden verwendet, um Daten für einen bestimmten Datentyp in C# zu speichern. Die Klasse List wird verwendet, um eine Liste eines bestimmten Datentyps in C# zu deklarieren. Wir müssen den Datentyp unserer Liste während der Deklaration angeben. Das folgende Codebeispiel zeigt uns, wie wir eine Liste in C# initialisieren können.

List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
  Console.WriteLine(x);
}

Ausgabe:

1
2

Im obigen Code haben wir die Instanz der Klasse List - list1 erstellt, die den Integer-Datentyp und gespeicherte Integer-Werte enthält.

ArrayLists vs Lists in C#

Die Klasse List muss wegen des Casting-Overheads in der Klasse ArrayList immer der Klasse ArrayList vorgezogen werden. Die Klasse List kann uns vor Laufzeitfehlern bewahren, die aufgrund der unterschiedlichen Datentypen der Klassenelemente ArrayList auftreten. Die Listen sind auch mit Linq sehr einfach zu verwenden. Das Problem mit Array-Listen wird im folgenden Codierungsbeispiel gezeigt.

ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
  total += num;
}

Der obige Code gibt beim Kompilieren keinen Fehler aus, wenn wir den Wert DelftStack in unsere Array-Liste aufnehmen. Es tritt jedoch ein Laufzeitfehler auf, da wir den DelftStack in die Ganzzahlvariable num umwandeln möchten. Das Problem kann durch die einfache Verwendung einer Liste anstelle einer Array-Liste vermieden werden.

List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
  total += num;
}

Der obige Code läuft einwandfrei und fehlerfrei. Eine Liste würde uns einen Kompilierungsfehler geben, wenn wir versuchen, DelftStack zu unserer Liste hinzuzufügen, die nur Werte vom ganzzahligen Datentyp enthält.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Csharp List