36 votes

.NET: ArrayList vs List

Quelle est la différence entre ArrayList et List dans VB.NET

48voto

Mike Scott Points 6062

ArrayLists sont essentiellement obsolète car ils sont non - vous devez utiliser jette avec eux - et ils sont plus lent et moins efficace de l'espace pour les types de valeur, parce qu'ils exigent les articles à être mis en boîte.

Générique listes ont été mis en place .Net 2.0 et sont la voie à suivre. Bien souvent, une Liste vaut mieux qu'un tableau, avec quelques inconvénients.

Comme ces collections sont de la partie .Net de la Bibliothèque de classes de Base, ce conseil vaut aussi pour C# et pour tout .Net de la langue qui prend en charge les génériques, c'est pas spécifique à VB.NET.

14voto

arul Points 10719

List est une implémentation générique de ArrayList. ArrayList stocke tous les objets en tant que System.Object que vous devez ensuite convertir en un type approprié. Les ArrayLists sont hétérogènes, List ne peut stocker qu'un seul type d'objets - ce type fourni en tant que paramètre générique.

 List<string> strList; // can store only strings
List<int> intList; // can store only ints
ArrayList someList; // can store anything
 

5voto

xslr Points 51

Les tableaux ArrayLists sont encore plus inefficaces lorsqu'ils sont utilisés sur 64 bits pour stocker des éléments primitifs en raison des références mémoire larges de 64 bits par opposition aux références 32 bits sur les machines 32 bits et à la boxe.

Voir ceci pour plus de détails: http://blogs.msdn.com/joshwil/archive/2004/04/13/112598.aspx

3voto

ggf31416 Points 2060

ArrayList vous permet d'écrire ceci:

 Dim customers as new ArrayList
Dim c as new Customer
Dim m as new Manager
customers.Add(c)
customers.Add(m)

'This will cause an exception '  
For each c as Customer in customers
console.writeline(c.Name)
Next
 

Une liste (de client) n'autorise que les objets de type client et les types hérités de client, vous ne pouvez donc pas commettre de telles erreurs.

Même si vous devez placer des objets de types non liés dans la même collection, une liste (d'objets) constitue un meilleur choix car elle indique explicitement que vous traitez avec différents types.

2voto

Kibbee Points 36474

List peut utiliser des génériques afin que seuls des objets de types spécifiques puissent y être placés, de sorte que vous puissiez bénéficier d'une vérification de type supplémentaire et que vous puissiez réduire le temps de traitement en raison de la boxe et du déballage. Arraylist ne peut pas utiliser cela. Dans presque tous les cas, vous voudrez utiliser une liste plutôt qu’un arrayliste.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X