ArrayList vs List en C#

Muhammad Maisam Abbas 16 février 2024
  1. ArrayLists en C#
  2. Listes en C#
  3. ArrayLists vs Lists en C#
ArrayList vs List en C#

Ce didacticiel abordera les différences et les similitudes entre ArrayLists et Lists en C#.

ArrayLists en C#

La classe ArrayList est utilisée pour déclarer une ArrayList en C#. Une ArrayList y stocke des références d’objet. Cela signifie qu’un ArrayList peut y stocker des données de plusieurs types de données comme un entier, une chaîne, un flottant, etc. L’exemple de code suivant nous montre comment initialiser une ArrayList en C#.

ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
  Console.WriteLine(x);
}

Production:

1 Pony

Dans le code ci-dessus, nous avons créé l’instance de la classe ArrayList - array1 et y avons stocké différentes valeurs de différents types de données.

Listes en C#

Les listes génériques sont utilisées pour contenir des données pour un type de données spécifique en C#. La classe List permet de déclarer une liste d’un type de données spécifique en C#. Nous devons spécifier le type de données de notre liste lors de la déclaration. L’exemple de code suivant nous montre comment initialiser une List en C#.

List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
  Console.WriteLine(x);
}

Production:

1 2

Dans le code ci-dessus, nous avons créé l’instance de la classe List - list1 qui contient le type de données entier et les valeurs entières stockées.

ArrayLists vs Lists en C#

La classe List doit toujours être préférée à la classe ArrayList à cause de la surcharge de conversion dans la classe ArrayList. La classe List peut nous sauver des erreurs d’exécution rencontrées en raison des différents types de données des éléments de la classe ArrayList. Les listes sont également très faciles à utiliser avec Linq. Le problème avec les listes de tableaux est illustré dans l’exemple de codage suivant.

ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
  total += num;
}

Le code ci-dessus ne donnera aucune erreur lors de la compilation lorsque nous ajouterons la valeur DelftStack dans notre liste de tableaux. Mais nous ferons face à une erreur d’exécution car nous voulons convertir le DelftStack en la variable entière num. Le problème peut être évité avec la simple utilisation d’une liste au lieu d’une liste de tableaux.

List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
  total += num;
}

Le code ci-dessus fonctionnera parfaitement sans aucune erreur. Une liste nous donnerait une erreur de compilation chaque fois que nous essayons d’ajouter DelftStack à notre liste qui ne contient que des valeurs de type de données entier.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp List