AIDE .NET

C# ArrayList (Comment ça marche pour les développeurs)

Chaknith Bin
Chaknith Bin
mars 6, 2024
Partager:

La classe ArrayList fait partie de l'espace de noms des collections de .NET Framework, conçue pour stocker une collection d'objets. Il s'agit d'une collection non générique, ce qui signifie qu'elle peut contenir des éléments de n'importe quel type de données. Cette caractéristique lui confère une grande souplesse, mais une sécurité de type moindre par rapport aux collections génériques. Le ArrayList peut contenir des éléments en double et permet un redimensionnement dynamique lorsqu'une valeur valide est ajoutée ou supprimée. Dans cet article, nous aborderons les bases de l'ArrayList et les fonctionnalités de la bibliothèque IronPDF.

Les bases de l'ArrayList

La ArrayList est essentiellement une collection non-générique, capable de stocker un certain nombre d'éléments de n'importe quel type de données, ce qui en fait un choix polyvalent pour divers scénarios de programmation. La possibilité d'ajouter des éléments ou d'en retirer à volonté sans les contraintes d'une taille fixe est l'une de ses principales caractéristiques. La ArrayList ajuste automatiquement sa taille pour accueillir de nouveaux éléments, une fonctionnalité rendue possible grâce à son implémentation de l'interface IList. Ce redimensionnement dynamique est crucial pour les applications qui nécessitent des collections dont le nombre d'éléments varie au cours de leur durée de vie.

Lorsque vous instanciez une liste de tableaux, vous créiez une collection qui peut contenir n'importe quelle valeur d'objet, depuis les entiers et les chaînes jusqu'aux objets personnalisés complexes. Ajouter des éléments à une ArrayList est simple, grâce à des méthodes telles que Add, qui ajoute une valeur objet à la fin de la collection, et Insert, qui place un nouvel élément à un index spécifié, décalant les éléments existants si nécessaire pour faire de la place. Cette flexibilité permet aux développeurs de gérer les collections plus efficacement, en s'adaptant aux besoins de l'application au fur et à mesure de son évolution.

Travailler avec des éléments

Ajouter des éléments à une ArrayList est simple et intuitif. Par exemple, imaginez un scénario où vous construisez une collection de différents types de données. Avec la méthode Add, vous pouvez ajouter n'importe quel objet à votre ArrayList, des chaînes aux entiers, ou même d'autres collections. La capacité de la liste est automatiquement augmentée en fonction des besoins, ce qui garantit qu'il y a toujours de la place pour les nouveaux éléments de l'objet obj. Ce redimensionnement automatique est un avantage significatif par rapport aux tableaux traditionnels, qui nécessitent un redimensionnement manuel ou la création d'un nouveau tableau pour accueillir plus d'éléments.

La ArrayList offre également des méthodes pour insérer et supprimer des éléments à des positions spécifiques ou à un indice entier. La méthode Insert vous permet d'ajouter un élément à une position spécifiée, ce qui vous permet de placer de nouveaux éléments précisément dans la collection à n'importe quel indice spécifié. De même, les méthodes Remove et RemoveAt facilitent la suppression d'éléments, soit en spécifiant l'objet à supprimer, soit son index dans la collection. Ce contrôle granulaire sur les éléments au sein de l'ArrayList en fait un outil puissant pour gérer les données dynamiques.

Création et ajout d'éléments

Pour commencer à utiliser un ArrayList, vous devez d'abord en créer une instance. Ensuite, vous pouvez ajouter des éléments à l'ArrayList en utilisant la méthode Add, qui insère un objet à la fin de l'ArrayList.

class Program
{
// public static void main
    public static void Main()
    {
        ArrayList myArrayList = new ArrayList();
        myArrayList.Add("Hello");
        myArrayList.Add(100);
        var item = "World";
        myArrayList.Add(item);
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
class Program
{
// public static void main
    public static void Main()
    {
        ArrayList myArrayList = new ArrayList();
        myArrayList.Add("Hello");
        myArrayList.Add(100);
        var item = "World";
        myArrayList.Add(item);
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
Friend Class Program
' public static void main
	Public Shared Sub Main()
		Dim myArrayList As New ArrayList()
		myArrayList.Add("Hello")
		myArrayList.Add(100)
		Dim item = "World"
		myArrayList.Add(item)
		For Each obj In myArrayList
			Console.WriteLine(obj)
		Next obj
	End Sub
End Class
$vbLabelText   $csharpLabel

C# ArrayList (Comment ça fonctionne pour les développeurs) : Figure 1 - Créer une sortie ArrayList

Cet exemple démontre comment créer un nouvel ArrayList et y ajouter différents types d'éléments. La boucle foreach parcourt ensuite l'ArrayList, en imprimant chaque élément.

Insertion d'éléments

Pour insérer un élément à un indice spécifié, utilisez la méthode Insérer, en notant qu'il s'agit d'un système d'indexation à base zéro.

myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item");
myArrayList.Insert(1, "Inserted Item")
$vbLabelText   $csharpLabel

Suppression d'éléments

Pour supprimer des éléments, les méthodes Remove et RemoveAt s'avèrent pratiques. Remove supprime la première occurrence d'un objet spécifique, tandis que RemoveAt supprime l'élément à l'index entier spécifié.

myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0); // Removes the element at index 0
myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0); // Removes the element at index 0
myArrayList.Remove("Hello") ' Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0) ' Removes the element at index 0
$vbLabelText   $csharpLabel

Exemple : Gestion d'une liste de tableaux

Créer un exemple avancé d'utilisation de ArrayList en C# implique de montrer non seulement les opérations basiques comme l'ajout ou la suppression d'éléments, mais aussi des manipulations plus complexes telles que le tri, la recherche et la conversion de l'ArrayList en d'autres structures de données. Placez l'exemple suivant dans le fichier Program.cs pour l'exécuter :

using System;
using System.Collections;
using System.Linq;
class AdvancedArrayListExample
{
    static void Main(string [] args)
    {
        // Initialize an ArrayList with some elements
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        // Adding elements
        numbers.Add(6); // Add an element to the end
        numbers.AddRange(new int [] { 7, 9, 0 }); // Add multiple elements from a specified collection.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Removing elements
        numbers.Remove(1); // Remove the element 1
        numbers.RemoveAt(0); // Remove the first element
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Sorting
        numbers.Sort(); // Sort the ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Searching
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); // Find the index of the element
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        // Converting ArrayList to Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Demonstrate LINQ with ArrayList (Requires System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results.
        Console.WriteLine("Even Numbers:");
        evenNumbers.ForEach(n => Console.Write(n + " "));
        Console.WriteLine();
    }
}
using System;
using System.Collections;
using System.Linq;
class AdvancedArrayListExample
{
    static void Main(string [] args)
    {
        // Initialize an ArrayList with some elements
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        // Adding elements
        numbers.Add(6); // Add an element to the end
        numbers.AddRange(new int [] { 7, 9, 0 }); // Add multiple elements from a specified collection.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Removing elements
        numbers.Remove(1); // Remove the element 1
        numbers.RemoveAt(0); // Remove the first element
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Sorting
        numbers.Sort(); // Sort the ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Searching
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); // Find the index of the element
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        // Converting ArrayList to Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        // Demonstrate LINQ with ArrayList (Requires System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results.
        Console.WriteLine("Even Numbers:");
        evenNumbers.ForEach(n => Console.Write(n + " "));
        Console.WriteLine();
    }
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.Linq
Friend Class AdvancedArrayListExample
	Shared Sub Main(ByVal args() As String)
		' Initialize an ArrayList with some elements
		Dim numbers As New ArrayList() From { 5, 8, 1, 3, 2 }
		' Adding elements
		numbers.Add(6) ' Add an element to the end
		numbers.AddRange(New Integer () { 7, 9, 0 }) ' Add multiple elements from a specified collection.
		Console.WriteLine("Initial ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Removing elements
		numbers.Remove(1) ' Remove the element 1
		numbers.RemoveAt(0) ' Remove the first element
		Console.WriteLine("After Removal:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Sorting
		numbers.Sort() ' Sort the ArrayList
		Console.WriteLine("Sorted ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Searching
		Dim searchFor As Integer = 5
		Dim index As Integer = numbers.IndexOf(searchFor) ' Find the index of the element
		If index <> -1 Then
			Console.WriteLine($"Element {searchFor} found at index {index}")
		Else
			Console.WriteLine($"Element {searchFor} not found.")
		End If
		Console.WriteLine(vbLf)
		' Converting ArrayList to Array
		Dim numbersArray() As Integer = DirectCast(numbers.ToArray(GetType(Integer)), Integer ())
		Console.WriteLine("Converted Array:")
		For Each number As Integer In numbersArray
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		' Demonstrate LINQ with ArrayList (Requires System.Linq)
		Dim evenNumbers = numbers.Cast(Of Integer)().Where(Function(n) n Mod 2 = 0).ToList() ' Assign values to evenNumbers from the filtered results.
		Console.WriteLine("Even Numbers:")
		evenNumbers.ForEach(Sub(n) Console.Write(n & " "))
		Console.WriteLine()
	End Sub
End Class
$vbLabelText   $csharpLabel

Cet extrait de code montre comment :

  • Initialiser une ArrayList avec un ensemble d'éléments.
  • Ajouter des éléments simples et multiples à l'ArrayList.
  • Supprimer des éléments par valeur et par index.
  • Trier la ArrayList pour ordonner les éléments.
  • Recherche d'un élément et de son index.
  • Convertir la ArrayList en un tableau standard.
  • Utilisez LINQ avec ArrayList pour filtrer les nombres pairs, montrant comment faire le lien entre les collections non génériques et les puissantes capacités de requête de LINQ.

    C# ArrayList (Comment ça fonctionne pour les développeurs) : Figure 2 - Sortie de l'ArrayList

Introduction d'IronPDF : C&num ; Bibliothèque PDF

ArrayList C# (Comment cela fonctionne pour les développeurs) : Figure 3 - IronPDF

IronPDF est une bibliothèque puissante pour C# qui simplifie le processus complexe de génération de PDF, offrant un large éventail de fonctionnalités pour la manipulation de PDF, y compris la capacité de générer des PDF à partir de HTML, ajouter du texte et des images, sécuriser des documents, et bien plus encore.

Intégration d'IronPDF avec ArrayList

Écrivons un programme C# simple qui crée un ArrayList d'éléments, puis utilise IronPDF pour générer un document PDF répertoriant ces éléments.

using IronPdf;
using System;
using System.Collections;
class pdfocde
{
    static void Main(string [] args)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new ArrayList and add some items
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        // Initialize a new PDF document
        var Renderer = new ChromePdfRenderer();
        // Create an HTML string to hold our content
        string htmlContent = "<h1>Items List</h1><ul>";
        // Iterate over each item in the ArrayList and add it to the HTML string
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        // Convert the HTML string to a PDF document
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        PDF.SaveAs("e:\\ItemList.pdf");
        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
using IronPdf;
using System;
using System.Collections;
class pdfocde
{
    static void Main(string [] args)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new ArrayList and add some items
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        // Initialize a new PDF document
        var Renderer = new ChromePdfRenderer();
        // Create an HTML string to hold our content
        string htmlContent = "<h1>Items List</h1><ul>";
        // Iterate over each item in the ArrayList and add it to the HTML string
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        // Convert the HTML string to a PDF document
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        PDF.SaveAs("e:\\ItemList.pdf");
        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
Imports IronPdf
Imports System
Imports System.Collections
Friend Class pdfocde
	Shared Sub Main(ByVal args() As String)
		IronPdf.License.LicenseKey = "License"
		' Create a new ArrayList and add some items
		Dim itemList As New ArrayList()
		itemList.Add("Apple")
		itemList.Add("Banana")
		itemList.Add("Cherry")
		itemList.Add("Date")
		' Initialize a new PDF document
		Dim Renderer = New ChromePdfRenderer()
		' Create an HTML string to hold our content
		Dim htmlContent As String = "<h1>Items List</h1><ul>"
		' Iterate over each item in the ArrayList and add it to the HTML string
		For Each item In itemList
			htmlContent &= $"<li>{item}</li>"
		Next item
		htmlContent &= "</ul>"
		' Convert the HTML string to a PDF document
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
		' Save the PDF to a file
		PDF.SaveAs("e:\ItemList.pdf")
		Console.WriteLine("PDF file 'ItemList.pdf' has been generated.")
	End Sub
End Class
$vbLabelText   $csharpLabel

Dans cet exemple, nous commençons par créer un ArrayList nommé itemList et le remplir avec plusieurs éléments sous forme de chaîne. Ensuite, nous initialisons une nouvelle instance de la classe ChromePdfRenderer d'IronPDF, que nous utiliserons pour convertir le contenu HTML en document PDF.

Sortie

Voici le PDF de sortie généré par IronPDF :

ArrayList C# (Comment ça fonctionne pour les développeurs) : Figure 4 - Sortie PDF

Conclusion

C# ArrayList (Comment cela fonctionne pour les développeurs) : Figure 5 - Licence

La ArrayList est une collection puissante offerte par C# pour stocker une liste d'objets. Sa capacité à ajuster la taille de manière dynamique et à stocker des éléments de tout type le rend polyvalent pour un large éventail d'applications. Toutefois, pour des raisons de sécurité des types et de meilleures performances, il est recommandé d'utiliser des collections génériques. Expérimenter avec l'ArrayList et ses méthodes vous aidera à comprendre ses utilisations et comment il peut s'intégrer dans vos applications.

De plus, pour ceux qui souhaitent étendre leurs capacités C# à la manipulation de PDF, IronPDF propose un essai gratuit pour les Fonctionnalités PDF en .NET afin d'explorer ses caractéristiques. Les licences commencent à partir de $749, offrant une solution complète pour intégrer la fonctionnalité PDF dans les applications .NET.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Math.Round C# (Comment ça marche pour les développeurs)
SUIVANT >
Linter C# (Comment ça marche pour les développeurs)