Différence entre ArrayList et List en C#

ArrayList est une classe de collection non générique et se trouve dans l’espace de noms System.Collection, tandis que List est une classe générique et se trouve dans l’espace de noms System.Collections.Generic.
 
Les collections en C#

ArrayList
ArrayList numbers = new ArrayList();
numbers.Add(2);
numbers.Add(6.99);
numbers.Add("Five");

Dans l’exemple ci-dessus, nous créons un objet ArrayList et y ajoutons différents types de données. Mais en réalité, ArrayList est une collection de type Object, et lorsque nous ajoutons un élément à ArrayList, il le convertit d’abord en type Object, puis l’ajoute à la collection.

Comme ArrayList ne peut créer une collection que pour le type Object, c’est pour cela qu’on dit que la classe ArrayList n’est pas générique. C’est-à-dire on peut ajouter n’importe quelle valeur de type int, float, string à la collection ArrayList. Mais en fait, il convertit en interne tous ces types de données en type Object, puis les ajoute à la collection.
Les collections en C#

List
List<int> numbers = new List<int>();
numbers.Add(55);
numbers.Add(2);
numbers.Add(14);
numbers.Add(78);

Dans l’exemple ci-dessus, nous remarquons que lors de la création d’un objet de la classe List, nous avons mentionné le type de la collection que nous souhaitons créer. Nous devons transmettre le type de données lors de la création d’un objet, car la classe List ne le convertit pas en interne. Ainsi, la déclaration ci-dessus créera des nombres en tant que collection d’entiers, et non une collection d’objets comme dans le cas de ArrayList.

Dans la collection ci-dessus, vous ne pouvez ajouter que des entiers et aucun autre type. En utilisant la classe List, vous pouvez également créer une collection de type string:

List<string> numbers = new List<string>();
numbers.Add("One");
numbers.Add("Five");
numbers.Add("Three");

C’est pour cela qu’on dit que c’est une classe générique.
qcm-csharp

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *