2010-11-22 5 views
6

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?

+0

Ich nehme an, wenn Sie eine Liste von verschiedenen, nicht verwandten Typen haben wollten. –

+2

@John: In diesem Fall würde ich lieber "List " aus Gründen der Konsistenz verwenden. –

+2

Verschiedene, nicht verwandte Typen könnten in Liste gehen

Antwort

8

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.

0

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.

4

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.

1

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

0

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.

Verwandte Themen