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.
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