Junior
Was ist der Unterschied zwischen ArrayList und List in C#?
sobes.tech KI
Antwort von AI
Die Unterschiede zwischen ArrayList und List in C# sind wie folgt:
-
Typisierung:
ArrayListspeichert Elemente vom Typobject(nicht typisierte Sammlung), was eine Typumwandlung beim Zugriff auf Elemente erfordert und die Typsicherheit verringert.List<T>ist eine generische Sammlung (T— ein definierter Typ), die Elemente eines bestimmten Typs speichert, die Typsicherheit gewährleistet und die Notwendigkeit der Typumwandlung eliminiert.
-
Leistung:
- Das Hinzufügen und Abrufen von Elementen in
ArrayListkann langsamer sein, da Boxing und Unboxing von Werttypen erforderlich sind. List<T>ist in der Regel schneller, insbesondere für Werttypen, da kein Boxing/Unboxing erfolgt.
- Das Hinzufügen und Abrufen von Elementen in
-
Typsicherheit:
ArrayListkann Elemente verschiedener Typen enthalten, was zu Laufzeitfehlern führen kann.List<T>bietet Typsicherheit zur Compile-Zeit.
-
Implementierung:
ArrayListbefindet sich im NamespaceSystem.Collections.List<T>befindet sich im NamespaceSystem.Collections.Generic.
-
Verwendung:
ArrayListgilt als veraltet und wird in neuem Code nicht empfohlen.List<T>ist die bevorzugte Wahl für die meisten Szenarien.
Beispiel:
// Verwendung von ArrayList
System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
arrayList.Add(1); // int wird in object verpackt
arrayList.Add("Zeichenkette"); // string wird als object gespeichert
int zahl = (int)arrayList[0]; // Typumwandlung erforderlich
// Verwendung von List<T>
System.Collections.Generic.List<int> list = new System.Collections.Generic.List<int>();
list.Add(1); // fügt int hinzu
// int zahl = list[0]; // keine Typumwandlung erforderlich
Vergleichstabelle:
| Merkmal | ArrayList | List<T> |
|---|---|---|
| Typisierung | Nicht typisiert (object) | Generisch (T) |
| Leistung | Mögliche Boxing/Unboxing | Höher, kein Boxing/Unboxing für Werttypen |
| Typsicherheit | Niedrig | Hoch (zur Compile-Zeit) |
| Namensraum | System.Collections | System.Collections.Generic |
| Empfehlung | Nicht empfohlen | Empfohlen |