Comme le titre l'indique, quand dois-je utiliser List
et quand dois-je utiliser ArrayList
?
Merci
Vous devez toujours utiliser List<TypeOfChoice>
(introduit dans .NET 2.0 avec les génériques) car TypeSafe est plus rapide que ArrayList
(pas de boxing/unboxing non nécessaire).
Le seul cas où je pourrais penser à un ArrayList pourrait être utile si vous avez besoin d'interfacer d'anciennes choses (.NET 1.1) ou si vous avez besoin d'un tableau d'objets de type différent et que vous chargez tout en tant qu'objet - mais vous pouvez faire le dernier avec List<Object>
qui est généralement meilleur.
Comme List est une classe générique, j'aurais tendance à toujours utiliser List.
ArrayList est une classe .NET 1.x (toujours disponible et valide cependant), mais elle n'est pas "typée"/générique, vous aurez donc besoin de convertir les éléments de "objet" au type souhaité; alors que lorsque vous utilisez List, vous n'avez pas à le faire.
Utilisez la liste si possible. Je ne vois aucune utilisation possible de ArrayList lorsque la liste hautement performante existe.
ArrayList est une structure de données .NET plus ancienne. Si vous utilisez .NET 2.0 ou supérieur, utilisez toujours List lorsque le tableau doit contenir des éléments du même type. L'utilisation de List sur ArrayList améliore à la fois les performances et la convivialité.
Les génériques ont été introduits dans .Net 2.0. Si vous utilisez des versions antérieures de .Net, vous pouvez utiliser la liste de tableaux, sinon nous pouvons utiliser la liste générique elle-même. Array List est celui qui est déconseillé et ne fournira pas une meilleure sécurité de type et ne créera pas non plus de problèmes de boxe et de déballage.
Si vous ne voulez pas utiliser Linq Queries, vous n’avez pas besoin d’utiliser List. Si vous voulez utiliser, vous devez préférer la liste.
Comme dit l'autre. Vous devez utiliser le générique List, presque toujours lorsque vous connaissez le type (C # est un langage fortement typé), et d’autres méthodes lorsque vous utilisez des classes polymorphes/inhertance ou des tâches similaires.