2009-04-07 15 views

Respuesta

84

El tiempo principal para usar ArrayList está en .NET 1.1

Aparte de eso, List<T> todo el camino (para su local de T) ...

Para aquellos (raro) los casos en los que no se conoce el tipo por adelantado (y no se pueden usar genéricos), incluso List<object> es más útil que ArrayList (IMO).

+3

+1 ¡Eres muy rápido! :) –

+2

Sin embargo, podría ser más gracioso - ArrayList eugh :) – annakata

+2

¿Qué tal "ArrayList [spit]" ;-p –

5

Dado que List es una clase genérica, tendería a utilizar siempre List.

ArrayList es una clase .NET 1.x (todavía está disponible & válida), pero no es 'tipeado'/genérico, por lo que tendrá que convertir elementos de 'objeto' al tipo deseado; mientras que al usar List, no tienes que hacer eso.

12

Siempre debe usar List<TypeOfChoice> (introducido en .NET 2.0 con genéricos) ya que es TypeSafe y más rápido que ArrayList (no es necesario boxing/unboxing).

El único caso en el que podría pensar que una ArrayList podría ser útil es si necesita interactuar con cosas viejas (.NET 1.1) o necesita una matriz de objetos de diferente tipo y carga todo como objeto, pero usted podría hacer esto último con List<Object>, que generalmente es mejor.

+0

+1 para explicar * por qué * para favorecer 'Lista '. – Lernkurve

4

Use List donde sea posible. No puedo ver ningún uso de ArrayList cuando existe una lista de alto rendimiento.

0

Como otro dicho. Debes usar la Lista genérica, casi siempre cuando conoces el tipo (C# es un lenguaje fuerte) y otras formas cuando haces clases polimórficas/de inherencia u otras cosas por el estilo.

3

ArrayList es una estructura de datos .NET más antigua. Si usa .NET 2.0 o superior, siempre use List cuando la matriz necesite contener elementos del mismo tipo. El uso de List sobre ArrayList mejora tanto el rendimiento como la usabilidad.

0

Si no desea utilizar las consultas de Linq, no necesita utilizar la lista. Si desea usar, entonces debe preferir List.

0

Los genéricos se introdujeron en .Net 2.0. Si está utilizando versiones anteriores de .Net, puede utilizar la lista de matrices, pero podemos ir con la lista genérica. Array List es el obsoleto y no proporcionará un mejor tipo de seguridad y también creará problemas de boxeo y unboxing. Pero la lista genérica no lo hará.

Cuestiones relacionadas