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.
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