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 :