Tutoriel C# ArrayList avec exemples

โšก Rรฉsumรฉ intelligent

En C#, ArrayList est une collection dynamique de l'espace de noms System.Collections qui stocke ses รฉlรฉments sous forme d'objets. Contrairement ร  un tableau, sa taille s'adapte ร  l'exรฉcution et elle peut contenir des entiers, des chaรฎnes de caractรจres et des valeurs boolรฉennes dans une mรชme liste.

  • (I.e. Dimensionnement dynamique : ArrayList ajoute et supprime des รฉlรฉments ร  l'exรฉcution, vous ne fixez donc pas le nombre d'รฉlรฉments ร  l'avance comme pour un tableau.
  • ๐Ÿ“ฆ Stockage d'objet : Chaque รฉlรฉment est stockรฉ sous forme d'objet, ce qui permet ร  une ArrayList de contenir des types de donnรฉes mixtes tels que int, string et bool.
  • โž• Mรฉthodes principales : Les fonctions Add, Insert, Remove, RemoveAt, Contains et Sort couvrent les opรฉrations courantes sur une ArrayList.
  • (I.e. Nombre et capacitรฉ : La propriรฉtรฉ Count renvoie le nombre actuel d'รฉlรฉments, tandis que Capacity correspond ร  l'espace de stockage allouรฉ.
  • โœ… Choix moderne : Microsoft recommande la liste gรฉnรฉrique pour le nouveau code car elle ajoute une sรฉcuritรฉ de type au moment de la compilation et รฉvite l'encapsulation.
  • ๐Ÿค– Aide ร  l'IA : GitHub Copilot gรฉnรจre le code ArrayList, et les pipelines ML.NET transmettent les donnรฉes via des types de collections C#.

ArrayList C#

Qu'est-ce qu'ArrayList en C# ?

La collection ArrayList est similaire ร  la Arrays type de donnรฉes en C#. La plus grande diffรฉrence rรฉside dans la nature dynamique de la collection de listes de tableaux.

Pour les tableaux, vous devez dรฉfinir le nombre d'รฉlรฉments que le tableau peut contenir au moment de la dรฉclaration du tableau. Mais dans le cas de la collection Array List, cela n'a pas besoin d'รชtre fait au prรฉalable. Des รฉlรฉments peuvent รชtre ajoutรฉs ou supprimรฉs de la collection Array List ร  tout moment. Examinons plus en dรฉtail les opรฉrations disponibles pour la collection de listes de tableaux.

Dรฉclaration d'une liste de tableaux

La dรฉclaration d'un ArrayList est fournie ci-dessous. Une liste de tableaux est crรฉรฉe ร  l'aide du type de donnรฉes ArrayList. Le mot-clรฉ ยซ new ยป est utilisรฉ pour crรฉer un objet dโ€™une ArrayList. L'objet est alors affectรฉ ร  la variable a1. Alors maintenant la variable a1 sera utilisรฉe pour accรฉder aux diffรฉrents รฉlรฉments de la liste du tableau.

ArrayList a1 = new ArrayList()

Ajouter des รฉlรฉments ร  un tableau

La mรฉthode add est utilisรฉe pour ajouter un รฉlรฉment ร  ArrayList. La mรฉthode add peut รชtre utilisรฉe pour ajouter nโ€™importe quel type dโ€™รฉlรฉment de type de donnรฉes ร  la liste du tableau. Vous pouvez donc ajouter un entier, une chaรฎne ou mรชme une valeur boolรฉenne ร  la liste des tableaux. La syntaxe gรฉnรฉrale de la mรฉthode d'addition est donnรฉe ci-dessous

ArrayList.add(element)

Vous trouverez ci-dessous quelques exemples de la maniรจre dont la mรฉthode ยซ ajouter ยป peut รชtre utilisรฉe. La mรฉthode add peut รชtre utilisรฉe pour ajouter diffรฉrents types de donnรฉes ร  la collection Array List.

Ci-dessous, vous pouvez voir des exemples de la faรงon dont nous pouvons ajouter des chaรฎnes d'entiers et mรชme des valeurs boolรฉennes ร  la collection Array List.

  • a1.add(1) โ€“ Cela ajoutera une valeur entiรจre ร  la collection
  • a1.add("Example") โ€“ Cela ajoutera une valeur String ร  la collection
  • a1.add(true) โ€“ Cela ajoutera une valeur boolรฉenne ร  la collection

Voyons maintenant que cela fonctionne au niveau du code. Tout le code mentionnรฉ ci-dessous sera รฉcrit dans notre application console. Le code sera รฉcrit dans notre fichier Program.cs.

Dans le programme ci-dessous, nous รฉcrirons le code pour crรฉer une nouvelle liste de tableaux. Nous montrerons รฉgalement comment ajouter des รฉlรฉments et afficher les รฉlรฉments de la liste Array.

Liste de tableaux en C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);
   
   Console.WriteLine(a1[0]);	  
   Console.WriteLine(a1[1]);
   Console.WriteLine(a1[2]);
   Console.ReadKey();
  }
 }
}

Code Explication:-

  1. La premiรจre รฉtape est utilisรฉe pour dรฉclarer notre Array List. Ici, nous dรฉclarons a1 comme variable pour contenir les รฉlรฉments de notre liste de tableaux.
  2. Nous utilisons ensuite le mot-clรฉ add pour ajouter le nombre 1 , la chaรฎne ยซ Example ยป et la valeur boolรฉenne ยซ true ยป ร  la liste du tableau.
  3. Nous utilisons ensuite la mรฉthode Console.WriteLine pour afficher la valeur de chaque รฉlรฉment de liste de tableau sur la console. Vous remarquerez que tout comme les tableaux, nous pouvons accรฉder aux รฉlรฉments via leurs positions d'index. Ainsi, pour accรฉder ร  la premiรจre position de la Array List, nous utilisons la position d'index [0]. Et ainsi de suite.

Si le code ci-dessus est entrรฉ correctement et que le programme est exรฉcutรฉ, la sortie suivante sera affichรฉe.

Sortie :

Liste de tableaux en C#

ร€ partir du rรฉsultat, vous pouvez voir que tous les รฉlรฉments de la liste du tableau sont envoyรฉs ร  la console.

Examinons quelques mรฉthodes supplรฉmentaires disponibles dans le cadre d'ArrayList.

que vous avez

Cette mรฉthode est utilisรฉe pour obtenir le nombre d'รฉlรฉments dans la collection ArrayList. Vous trouverez ci-dessous la syntaxe gรฉnรฉrale de cette instruction.

ArrayList.Count() โ€“ Cette mรฉthode renverra le nombre d'รฉlรฉments que contient la liste de tableaux.

Inclus

Cette mรฉthode est utilisรฉe pour voir si un รฉlรฉment est prรฉsent dans la collection ArrayList. Vous trouverez ci-dessous la syntaxe gรฉnรฉrale de cette instruction

ArrayList.Contains(element) โ€“ Cette mรฉthode renverra true si l'รฉlรฉment est prรฉsent dans la liste, sinon elle renverra false.

Supprimer ร 

Cette mรฉthode est utilisรฉe pour supprimer un รฉlรฉment ร  une position spรฉcifique dans la collection ArrayList. Vous trouverez ci-dessous la syntaxe gรฉnรฉrale de cette instruction

ArrayList.RemoveAt(index) โ€“ Cette mรฉthode supprimera un รฉlรฉment d'une position spรฉcifique de la liste des tableaux.

Voyons maintenant que cela fonctionne au niveau du code. Tout le code mentionnรฉ ci-dessous sera รฉcrit dans notre application console. Le code sera รฉcrit dans notre fichier Program.cs.

Dans le programme ci-dessous, nous รฉcrirons le code pour voir comment nous pouvons utiliser les mรฉthodes mentionnรฉes ci-dessus.

Liste de tableaux en C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);
   
   Console.WriteLine(a1.Count);
   Console.WriteLine(a1.Contains(2));
   Console.WriteLine(a1[1]);
   a1.RemoveAt(1);
   Console.WriteLine(a1[1]);
   Console.ReadKey();
  }
 }
}

Code Explication:-

  1. La premiรจre propriรฉtรฉ que nous voyons est donc la propriรฉtรฉ Count. Nous obtenons la propriรฉtรฉ Count de la liste de tableaux a1, puis nous l'รฉcrivons dans la console.
  2. Dans la deuxiรจme partie, nous utilisons la mรฉthode Contains pour voir si l'ArrayList a1 contient l'รฉlรฉment 2. Nous รฉcrivons ensuite le rรฉsultat dans la Console via la commande Writeline.
  3. Enfin, pour prรฉsenter la mรฉthode Remove element, nous effectuons les รฉtapes ci-dessous :
    1. Tout dโ€™abord, nous รฉcrivons la valeur de lโ€™รฉlรฉment ร  la position dโ€™index 1 de la liste des tableaux sur la console.
    2. Ensuite, nous supprimons lโ€™รฉlรฉment ร  la position dโ€™index 1 de la liste des tableaux.
    3. Enfin, nous รฉcrivons ร  nouveau la valeur de l'รฉlรฉment ร  la position d'index 1 de la liste des tableaux sur la console. Cet ensemble d'รฉtapes donnera une bonne idรฉe si la mรฉthode de suppression fonctionnera comme elle devrait l'รชtre.

Si le code ci-dessus est entrรฉ correctement et que le programme est exรฉcutรฉ, la sortie suivante sera affichรฉe.

Sortie :

Liste de tableaux en C#

Pourquoi la derniรจre valeur est-elle vraie ?

Si vous voyez la sรฉquence d'รฉvรฉnements, l'รฉlรฉment Exemple est supprimรฉ du tableau car il est en position 1. La position 1 du tableau est alors remplacรฉe par ce qui รฉtait en position 2 plus tรดt dont la valeur 'true'

Comment parcourir une ArrayList en C#

Parcourir chaque รฉlรฉment d'une ArrayList est une tรขche courante. Puisqu'une ArrayList stocke ses รฉlรฉments sous forme d'objets, vous pouvez les parcourir avec une boucle foreach ou avec une boucle for utilisant la propriรฉtรฉ Count. La boucle foreach est la mรฉthode la plus simple, car elle parcourt chaque รฉlรฉment sรฉquentiellement sans nรฉcessiter d'index.

L'exemple ci-dessous crรฉe une ArrayList de chaรฎnes de caractรจres et affiche chaque valeur sur une ligne distincte. Ce code est รฉcrit dans le fichier Program.cs d'une application console.

ร‰tape 1) Importez l'espace de noms System.Collections et crรฉez une ArrayList avec trois รฉlรฉments.

ร‰tape 2) Utilisez une boucle foreach pour lire chaque รฉlรฉment comme un objet et l'รฉcrire dans la console.

using System;
using System.Collections;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add("Java");
   a1.Add("Python");
   a1.Add("Kotlin");
   foreach (object item in a1)
   {
    Console.WriteLine(item);
   }
   Console.ReadKey();
  }
 }
}

Code Explication:-

  1. L'espace de noms System.Collections est importรฉ afin que le type ArrayList soit disponible pour le programme.
  2. Trois valeurs de type chaรฎne de caractรจres sont ajoutรฉes ร  l'ArrayList ร  l'aide de la mรฉthode Add.
  3. La boucle foreach lit chaque รฉlรฉment comme un objet, et la mรฉthode Console.WriteLine l'affiche sur une nouvelle ligne.

Lorsque le programme s'exรฉcute, il imprime Java, Python et Kotlin sur des lignes sรฉparรฉes. Une boucle for avec la propriรฉtรฉ Count donnerait le mรชme rรฉsultat tout en vous permettant d'utiliser la position de l'index de chaque รฉlรฉment.

Mรฉthodes et propriรฉtรฉs de la classe ArrayList en C#

La classe ArrayList offre de nombreuses mรฉthodes et propriรฉtรฉs intรฉgrรฉes pour gรฉrer ses รฉlรฉments. Outre l'ajout et la suppression d'รฉlรฉments, elle permet de trier, de rechercher et d'inverser la collection. Les membres les plus courants sont listรฉs ci-dessous.

Membre Description
Ajouter Ajoute un seul รฉlรฉment ร  la fin de l'ArrayList.
insรฉrer Ajoute un รฉlรฉment ร  une position d'index spรฉcifique.
Supprimer Supprime la premiรจre occurrence d'un รฉlรฉment spรฉcifique.
Supprimer ร  Supprime l'รฉlรฉment ร  la position d'index indiquรฉe.
Effacer Supprime tous les รฉlรฉments de l'ArrayList.
Sort Trie les รฉlรฉments par ordre croissant.
Reverse Reversel'ordre des รฉlรฉments dans la liste.
Inclus Renvoie vrai si l'รฉlรฉment donnรฉ existe dans la liste.
Index de Renvoie la position d'index d'un รฉlรฉment donnรฉ.
que vous avez Propriรฉtรฉ qui renvoie le nombre d'รฉlรฉments stockรฉs.
Capacitรฉs Propriรฉtรฉ qui renvoie le nombre d'รฉlรฉments que la liste peut contenir.

Ces membres vous permettent d'ajouter, de rechercher, de trier et de supprimer des รฉlรฉments sans avoir ร  รฉcrire vous-mรชme la logique, ce qui est l'un des principaux avantages de l'utilisation d'une collection par rapport ร  un simple tableau.

Diffรฉrence entre ArrayList et List en C#

ร€ la fois une ArrayList et un type gรฉnรฉrique Liste Ces deux types de stockage peuvent contenir un ensemble d'รฉlรฉments dont la taille peut augmenter ร  l'exรฉcution, mais leur gestion des types diffรจre. Comprendre cette diffรฉrence vous aide ร  choisir le type le plus adaptรฉ au code C# moderne.

Les principales diffรฉrences sont รฉnumรฉrรฉes ci-dessous :

  • Sรฉcuritรฉ du type : Une ArrayList stocke chaque รฉlรฉment sous forme d'objet, tandis qu'une List est liรฉe ร  un type dรฉclarรฉ et est vรฉrifiรฉe lors de la compilation.
  • Performance : Une ArrayList effectue des opรฉrations d'encapsulation et de dรฉsencapsulation sur les types de valeurs tels que int, ce qui prend du temps, tandis qu'une List รฉvite cette opรฉration pour une meilleure vitesse.
  • Espace de noms: ArrayList se trouve dans System.Collections, tandis que List se trouve dans System.Collections.Generic.
  • Moulage: La lecture d'une ArrayList nรฉcessite souvent une conversion vers le type d'origine, mais une List renvoie directement le type correct.
  • Recommandation: Microsoft Nous recommandons List pour les nouveaux dรฉveloppements car c'est plus sรปr, plus rapide et plus facile ร  lire.

En rรฉsumรฉ, une ArrayList est utile pour comprendre du code ancien ou un stockage de types mixtes, tandis qu'une List est le choix privilรฉgiรฉ pour la plupart des applications actuelles.

FAQ

Un tableau a une taille fixe et stocke un seul type de donnรฉes dรฉfini lors de sa dรฉclaration. Une ArrayList, quant ร  elle, s'agrandit et se rรฉduit dynamiquement et stocke chaque รฉlรฉment comme un objet, ce qui lui permet de contenir des types de donnรฉes variรฉs dans une seule liste.

ArrayList n'est pas supprimรฉ, mais Microsoft Il est dรฉconseillรฉ de l'utiliser pour les nouveaux dรฉveloppements. La classe List gรฉnรฉrique de System.Collections.Generic est prรฉfรฉrable car elle offre une meilleure sรฉcuritรฉ des types et des performances accrues ; c'est pourquoi la plupart des codes C# modernes utilisent List.

Puisqu'une ArrayList stocke les รฉlรฉments sous forme d'objets, l'ajout d'une valeur de type int l'encapsule dans un objet (boxing). La lecture de cette valeur et sa conversion vers son type d'origine (unboxing) entraรฎnent un dรฉballage. Ces deux opรฉrations ont un impact sur les performances, contrairement ร  List.

Un ArrayList permet ร  plusieurs lecteurs d'accรฉder simultanรฉment ร  la collection, mais la sรฉcuritรฉ des modifications apportรฉes ร  ses membres dans un contexte multithread n'est pas garantie. Pour des รฉcritures multithread sรฉcurisรฉes, il est recommandรฉ d'encapsuler l'ArrayList dans un ArrayList.SyncUtilisez plutรดt une mรฉthode hรฉrรฉditaire ou une collection concurrente.

Count reprรฉsente le nombre d'รฉlรฉments actuellement stockรฉs dans l'ArrayList. Capacity correspond au nombre total d'รฉlรฉments qu'elle peut contenir avant de se redimensionner. Capacity est toujours supรฉrieure ou รฉgale ร  Count et augmente automatiquement ร  mesure que vous ajoutez des รฉlรฉments.

Vous pouvez copier les รฉlรฉments dans une liste fortement typรฉe ร  l'aide des mรฉthodes Cast et ToList, ou appeler la mรฉthode ToArray pour obtenir un tableau d'objets. La conversion en une liste gรฉnรฉrique est courante car elle rรฉtablit la sรฉcuritรฉ des types.

Oui. GitHub Copilot permet de dรฉclarer des ArrayList, d'ajouter et de supprimer des appels et des boucles ร  partir d'un court commentaire ou d'un nom de mรฉthode. Il suggรจre souvent la version gรฉnรฉrique List, car c'est la collection recommandรฉe pour le nouveau code C#.

ML.NET lit gรฉnรฉralement les donnรฉes d'entraรฎnement via des collections gรฉnรฉriques telles que List et IEnumerable, qui correspondent ร  son pipeline IDataView. Une ArrayList non gรฉnรฉrique est rarement utilisรฉe directement car une collection fortement typรฉe garantit la clartรฉ et la sรฉcuritรฉ des types des donnรฉes d'apprentissage automatique.

Rรฉsumez cet article avec :