Der Titel fasst es ziemlich zusammen. Jetzt, wo wir List<T>
haben, warum sollte jemand stattdessen eine ArrayList
verwenden? Der einzige Grund, an den ich denken kann, ist, wenn Sie gezwungen werden, eine alte Version von .NET zu verwenden, bevor List<T>
implementiert wurde?C# Gibt es jemals einen Grund, ArrayList anstatt der Liste <T> mehr zu verwenden?
Antwort
Wie Sie gesagt haben, wenn Sie aus irgendeinem Grund mit .Net 1.1 stecken bleiben, dann haben Sie keine Wahl.
Ihre Frage scheint darauf hinzuweisen, dass es eine Wahlmöglichkeit gibt. Also gibt es keinen Grund, Benutzer ArrayList
zu verwenden. Alles, was ArrayList
tun kann, List<T>
kann auch gut, wenn nicht besser.
Sie sagten es selbst: Rückwärtskompatibilität. Es hat keinen Nutzen mehr, aber es kann natürlich nicht aus dem BCL entfernt werden, da es bestehenden Code, der aus irgendeinem Grund gegen .NET 1.1 kompiliert werden muss, brechen würde.
Kurze Antwort, nein. ArrayList war von wann .NET Generics nicht unterstützt. Liste ist der flexiblere (generische) Weg, Listen zu behandeln. Tatsächlich glaube ich nicht, dass Silverlight überhaupt ArrayLists unterstützt.
ArrayList ist hauptsächlich für Rückwärtskompatibilität. In einem Projekt, in dem eine Frist besteht, haben Sie möglicherweise Zeit, alles von ArrayList in eine generische Liste zu konvertieren.
Ein weiterer Grund ist, dass Sie möglicherweise eine Bibliothek verwenden, die in .NET 1.1 geschrieben ist. Sie können daher die Verwendung von ArrayList in Ihrem Code erzwingen und diese höchstwahrscheinlich in eine generische Liste konvertieren, um die Codierung zu vereinfachen.
Allerdings gibt es einige Unterschiede, und Sie können diese lesen wollen: .NET: ArrayList vs List
Das nur Mal, dass ich habe eine Arraylist verwendet, da .Net 2.0 für den Einsatz war mit dem eingebauten in My.Settings-Funktion in vb.net, und ich habe seitdem gelernt, dass ich wahrscheinlich eine generische Liste in Shoehorned haben könnte.
- 1. Gibt es jemals einen Grund, ":: template" zu verwenden?
- 2. Gibt es einen Grund, System.Uri zu verwenden?
- 3. Gibt es einen Grund, * & oder & * im C-Code zu verwenden?
- 4. ActionScript: Gibt es jemals einen guten Grund, "wie" Casting zu verwenden?
- 5. Gibt es jemals einen guten Grund, den Child Fragment Manager für DialogFragments zu verwenden?
- 6. Gibt es jemals einen Grund, Scala's StringLike.replaceAllLiterally über Java's String.replace zu verwenden?
- 7. Gibt es einen Grund, `new object(). Foo()` nicht zu verwenden?
- 8. Gibt es einen Grund, NSViewAnimation über CoreAnimation-Techniken zu verwenden?
- 9. Gibt es einen Grund, threading.Lock über Multiprocessing.Lock zu verwenden?
- 10. Gibt es einen Grund, Mausklick vs Tastatur zu verwenden?
- 11. Müssen wir jemals Iteratoren in ArrayList verwenden?
- 12. Gibt es jemals einen Grund, vererbte Mitglieder in einer Schnittstelle zu verstecken?
- 13. Gibt es einen berechtigten Grund, new und einen Konstruktor für eine Zahlenklasse in Java zu verwenden?
- 14. Gibt es einen Grund, PHP's exec() nicht zu benutzen?
- 15. Integration mit Cerner oder Epic, gibt es einen Grund, HL7v3/2 anstelle von FHIR zu verwenden?
- 16. Gibt es einen guten Grund für Javascript inline zu sein
- 17. Gibt es einen Grund, eine statische Klasse nur mit statischen Elementen zu verwenden, anstatt sie statisch zu machen?
- 18. Gibt es jemals einen stichhaltigen Grund, * das vom Kopierzuweisungsoperator nicht zurückzugeben?
- 19. Gibt es noch einen anderen Grund, Abhängigkeitsinjektionen zu verwenden, um das Testen zu erleichtern?
- 20. Gibt es einen Grund, den Strict-Modus in JavaScript nicht zu verwenden?
- 21. Gibt es einen Grund, extern "C" für Header ohne Methoden zu verwenden?
- 22. Gibt es einen Grund, warum JavaScript-Entwickler Array.push() nicht verwenden?
- 23. Flash: Gibt es einen guten Grund, alles manuell zu machen?
- 24. Arraylist zu Liste <t>?
- 25. Gibt es einen guten Grund, <rtexprvalue> false</ rtexprvalue> in JSP-Tags zu verwenden?
- 26. Gibt es einen technischen Grund, var in C# zu verwenden oder nicht, wenn der Typ bekannt ist?
- 27. Gibt es einen Grund, jQuery.Ajax zu asp.net UpdatePanel zu bevorzugen?
- 28. Gibt es jemals einen Grund, die Shebang-Zeile in Perl-Pakete aufzunehmen?
- 29. Gibt es einen Grund, das Zeichenfolgenmodul in Python zu importieren?
- 30. ArrayList <> Liste abrufen
Ich nehme an, wenn Sie eine Liste von verschiedenen, nicht verwandten Typen haben wollten. –
@John: In diesem Fall würde ich lieber "List
Verschiedene, nicht verwandte Typen könnten in Liste gehen