Quelle est la différence entre ArrayList et List dans VB.NET
Réponses
Trop de publicités?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.
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
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
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.
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.