AYUDA .NET

C# ArrayList (Cómo funciona para desarrolladores)

Chipego
Chipego Kalinda
6 de marzo, 2024
Compartir:

La clase ArrayList es parte del espacio de nombres de colecciones del .NET Framework, diseñada para almacenar una colección de objetos. Es una colección no genérica, lo que significa que puede contener elementos de cualquier tipo de datos. Esta característica la hace muy flexible pero menos segura en cuanto a tipos en comparación con las colecciones genéricas. El ArrayList puede contener elementos duplicados y permite el redimensionamiento dinámico a medida que se añade o elimina un valor válido. En este artículo, hablaremos sobre los fundamentos de ArrayList y las características de la biblioteca IronPDF.

Conceptos básicos de ArrayList

El ArrayList es esencialmente una colección no genérica, capaz de almacenar una cantidad de elementos de cualquier tipo de datos, lo que lo convierte en una opción versátil para varios escenarios de programación. La posibilidad de añadir elementos o eliminarlos a voluntad sin las limitaciones de un tamaño fijo es una de sus principales características. El ArrayList ajusta su tamaño automáticamente para acomodar nuevos elementos, una característica posible gracias a su implementación de la interfaz IList. Este redimensionamiento dinámico es crucial para las aplicaciones que requieren colecciones con un número variable de elementos a lo largo de su vida útil.

Cuando instancias un ArrayList, estás creando una colección que puede contener cualquier valor de objeto, desde enteros y cadenas hasta objetos complejos personalizados. Agregar elementos a un ArrayList es sencillo, gracias a métodos como Add, que añade un valor de objeto al final de la colección, y Insert, que coloca un nuevo elemento en un índice especificado, desplazando los elementos existentes según sea necesario para hacer espacio. Esta flexibilidad permite a los desarrolladores gestionar las colecciones con mayor eficacia, adaptándose a las necesidades de la aplicación a medida que ésta evoluciona.

Trabajar con elementos

Agregar elementos a un ArrayList es simple e intuitivo. Por ejemplo, considere un escenario en el que está construyendo una colección de varios tipos de datos. Con el método Add, puedes añadir cualquier objeto a tu ArrayList, desde cadenas hasta enteros, o incluso otras colecciones. La capacidad de la ArrayList se incrementa automáticamente según sea necesario, garantizando que siempre haya espacio para nuevos elementos object. Este redimensionamiento automático es una ventaja significativa frente a las matrices tradicionales, que requieren un redimensionamiento manual o la creación de una nueva matriz para dar cabida a más elementos.

El ArrayList también ofrece métodos para insertar y eliminar elementos en posiciones específicas o en el índice entero. El método Insertar permite añadir un elemento en una posición determinada, lo que permite colocar nuevos elementos dentro de la colección en cualquier índice especificado. De manera similar, los métodos Remove y RemoveAt facilitan la eliminación de elementos, ya sea especificando el objeto que se va a eliminar o su índice dentro de la colección. Este control granular sobre los elementos dentro del ArrayList lo convierte en una herramienta poderosa para gestionar datos dinámicos.

Crear y añadir elementos

Para comenzar a usar un ArrayList, primero necesitas crear una instancia de él. A continuación, puedes agregar elementos al ArrayList utilizando el método Add, que inserta un objeto al final del 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 (Cómo Funciona para Desarrolladores): Figura 1 - Crear Salida de ArrayList

Este ejemplo demuestra cómo crear un nuevo ArrayList y añadir diferentes tipos de elementos a él. El bucle foreach luego itera a través del ArrayList, imprimiendo cada elemento.

Inserción de elementos

Para insertar un elemento en un índice especificado, utilice el método Insertar, teniendo en cuenta que se trata de un sistema de índice basado en cero.

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

Eliminación de elementos

Para eliminar elementos, los métodos Remove y RemoveAt son muy útiles. Remove elimina la primera aparición de un objeto específico, mientras que RemoveAt elimina el elemento en el índice entero especificado.

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

Ejemplo: Gestión de un ArrayList

Crear un ejemplo avanzado de uso de ArrayList en C# implica mostrar no solo las operaciones básicas como añadir o eliminar elementos, sino también manipulaciones más complejas como ordenar, buscar y convertir el ArrayList a otras estructuras de datos. Ponga el siguiente ejemplo en el archivo Program.cs para ejecutarlo:

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

Este fragmento de código muestra cómo hacerlo:

  • Inicializar un ArrayList con un conjunto de elementos.
  • Agrega elementos individuales y múltiples a la ArrayList.
  • Eliminar elementos por valor y por índice.
  • Ordena el ArrayList para organizar los elementos.
  • Buscar un elemento y encontrar su índice.
  • Convierte el ArrayList en un array estándar.
  • Utilice LINQ con ArrayList para filtrar números pares, demostrando cómo conectar colecciones no genéricas con las potentes capacidades de consulta de LINQ.

    C# ArrayList (Cómo Funciona para Desarrolladores): Figura 2 - Salida de ArrayList

Introducción de IronPDF: C# Biblioteca PDF

C# ArrayList (Cómo Funciona Para Desarrolladores): Figura 3 - IronPDF

IronPDF es una poderosa biblioteca para C# que simplifica el complejo proceso de generación de PDF, ofreciendo una amplia gama de funciones para la manipulación de PDF, incluyendo la capacidad de generar PDF desde HTML, agregar texto e imágenes, proteger documentos, y mucho más.

Integración de IronPDF con ArrayList

Escribamos un programa simple en C# que cree un ArrayList de artículos, y luego use IronPDF para generar un documento PDF que liste esos artículos.

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

En este ejemplo, comenzamos creando un ArrayList llamado itemList y poblándolo con varios elementos de tipo cadena. A continuación, inicializamos una nueva instancia de la clase ChromePdfRenderer de IronPDF, que utilizaremos para convertir contenido HTML en un documento PDF.

Salida

Aquí está el PDF de salida generado por IronPDF:

C# ArrayList (Cómo Funciona Para Desarrolladores): Figura 4 - Salida PDF

Conclusión

C# ArrayList (Cómo Funciona Para Desarrolladores): Figura 5 - Licencias

El ArrayList es una colección poderosa ofrecida por C# para almacenar una lista de objetos. Su capacidad para ajustar el tamaño dinámicamente y almacenar elementos de cualquier tipo lo hace versátil para una amplia gama de aplicaciones. Sin embargo, por seguridad tipográfica y mejor rendimiento, se recomiendan las colecciones genéricas. Experimentar con el ArrayList y sus métodos te ayudará a comprender sus usos y cómo puede integrarse en tus aplicaciones.

Además, para aquellos interesados en expandir sus capacidades de C# en la manipulación de PDF, IronPDF ofrece una prueba gratuita para Funciones PDF en .NET para explorar sus características. Las licencias comienzan desde $749, proporcionando una solución integral para integrar la funcionalidad PDF en aplicaciones .NET.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Math.Round C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Linter (Cómo funciona para desarrolladores)