Saltar al pie de página
.NET AYUDA

C# ArrayList (Cómo Funciona para Desarrolladores)

La clase ArrayList es parte del espacio de nombres de colecciones de .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 altamente 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 agrega o elimina un valor válido. En este artículo, discutiremos los conceptos básicos de ArrayList y las Características de la Biblioteca IronPDF.

Los fundamentos de ArrayList

El ArrayList es esencialmente una colección no genérica capaz de almacenar varios elementos de cualquier tipo de datos, lo que lo convierte en una opción versátil para varios escenarios de programación. La capacidad de añadir o eliminar elementos a voluntad sin las restricciones de un tamaño fijo es una de sus características clave. 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 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 personalizados complejos. 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, e 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 colecciones más eficazmente, adaptándose a las necesidades de la aplicación a medida que evoluciona.

Trabajo 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 del ArrayList se incrementa automáticamente según sea necesario, asegurando que siempre haya espacio para nuevos elementos de objeto. Este redimensionamiento automático es una ventaja significativa sobre los arreglos tradicionales, que requieren redimensionamiento manual o la creación de un nuevo arreglo para acomodar más elementos.

El ArrayList también proporciona métodos para insertar y eliminar elementos en posiciones específicas o en un índice entero. El método Insert permite añadir un elemento en una posición especificada, permitiéndote colocar nuevos elementos con precisión 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 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.

Creación y adición de elementos

Para comenzar a usar un ArrayList, primero necesitas crear una instancia de él. Luego, puedes añadir elementos al ArrayList usando el método Add, que inserta un objeto al final del ArrayList.

using System;
using System.Collections;

class Program
{
    // The main entry point of the program
    public static void Main()
    {
        // Create a new ArrayList
        ArrayList myArrayList = new ArrayList();

        // Add elements of different types
        myArrayList.Add("Hello");
        myArrayList.Add(100);

        var item = "World";
        myArrayList.Add(item);

        // Iterate through the ArrayList and print each element
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
using System;
using System.Collections;

class Program
{
    // The main entry point of the program
    public static void Main()
    {
        // Create a new ArrayList
        ArrayList myArrayList = new ArrayList();

        // Add elements of different types
        myArrayList.Add("Hello");
        myArrayList.Add(100);

        var item = "World";
        myArrayList.Add(item);

        // Iterate through the ArrayList and print each element
        foreach (var obj in myArrayList)
        {
            Console.WriteLine(obj);
        }
    }
}
$vbLabelText   $csharpLabel

C# ArrayList (Cómo Funciona para Desarrolladores): Figura 1 - Salida del ArrayList

Este ejemplo demuestra cómo crear un nuevo ArrayList y agregarle diferentes tipos de elementos. 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, usa el método Insert, teniendo en cuenta que este es un sistema de índice basado en cero.

// Insert element at index 1
myArrayList.Insert(1, "Inserted Item");
// Insert element at index 1
myArrayList.Insert(1, "Inserted Item");
$vbLabelText   $csharpLabel

Eliminación de elementos

Para eliminar elementos, los métodos Remove y RemoveAt son ú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
$vbLabelText   $csharpLabel

Ejemplo: Gestión de una ArrayList

Crear un ejemplo avanzado de uso de ArrayList en C# implica mostrar no solo las operaciones básicas como agregar 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();
    }
}
$vbLabelText   $csharpLabel

Este fragmento de código demuestra cómo:

  • Inicializar un ArrayList con un conjunto de elementos.
  • Agregar elementos individuales y múltiples al ArrayList.
  • Eliminar elementos por valor y por índice.
  • Ordenar el ArrayList para ordenar los elementos.
  • Buscar un elemento y encontrar su índice.
  • Convertir el ArrayList a un arreglo estándar.
  • Usar LINQ con ArrayList para filtrar números pares, mostrando 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 del ArrayList

Presentación de IronPDF: Librería PDF en C

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

IronPDF es una potente biblioteca para C# que simplifica el complejo proceso de generación de PDFs, ofreciendo una amplia gama de características para la manipulación de PDFs, incluyendo la capacidad de generar PDFs desde HTML, agregar texto e imágenes, asegurar documentos, y mucho más.

Integración de IronPDF con ArrayList

Escribamos un programa simple en C# que crea un ArrayList de elementos y luego usa IronPDF para generar un documento PDF que enumera esos elementos.

using IronPdf;
using System;
using System.Collections;

class PdfCode
{
    static void Main(string[] args)
    {
        // Set your IronPDF license key here
        IronPdf.License.LicenseKey = "Your_License_Key";

        // 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("ItemList.pdf");

        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
using IronPdf;
using System;
using System.Collections;

class PdfCode
{
    static void Main(string[] args)
    {
        // Set your IronPDF license key here
        IronPdf.License.LicenseKey = "Your_License_Key";

        // 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("ItemList.pdf");

        Console.WriteLine("PDF file 'ItemList.pdf' has been generated.");
    }
}
$vbLabelText   $csharpLabel

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

Resultado

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 potente colección 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, para mayor seguridad de tipos y mejor rendimiento, se recomiendan las colecciones genéricas. Experimentar con el ArrayList y sus métodos te ayudará a entender sus usos y cómo puede encajar en tus aplicaciones.

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

Preguntas Frecuentes

¿Cómo puedo convertir un ArrayList a un PDF en C#?

Puedes utilizar IronPDF para generar un PDF desde un ArrayList en C#. Itera sobre el ArrayList para compilar el contenido en un formato adecuado para la generación de PDF, luego utiliza los métodos de IronPDF para crear y guardar el PDF.

¿Cuáles son los beneficios de usar IronPDF con ArrayLists?

IronPDF permite a los desarrolladores convertir fácilmente los datos almacenados en ArrayLists en documentos PDF. Esto es útil para crear informes o exportar listas de elementos con un mínimo de código y máxima eficiencia.

¿Puedo agregar texto e imágenes a un PDF generado a partir de un ArrayList?

Sí, con IronPDF puedes personalizar tu PDF agregando texto, imágenes y otros contenidos mientras iteras sobre los elementos de un ArrayList.

¿Es posible proteger un PDF generado a partir de un ArrayList en C#?

IronPDF ofrece características para proteger tus documentos PDF. Puedes establecer contraseñas y permisos para restringir el acceso y la edición de PDFs generados a partir de datos en un ArrayList.

¿Cómo beneficia la redimensión dinámica de ArrayList al integrarlo con bibliotecas de PDF?

La redimensión dinámica de un ArrayList asegura que puedas agregar o quitar elementos según sea necesario sin preocuparte por su capacidad. Esta flexibilidad es beneficiosa al preparar datos para la generación de PDF usando bibliotecas como IronPDF.

¿Cuál es la ventaja de usar IronPDF para desarrolladores de C#?

IronPDF ofrece a los desarrolladores de C# un conjunto de herramientas robustas para generar y manipular documentos PDF. Soporta diversas características como la conversión de HTML a PDF, agregar anotaciones y combinar múltiples PDFs, haciéndolo una biblioteca esencial para aplicaciones .NET.

¿Cómo puedo manejar diferentes tipos de datos en un ArrayList al crear un PDF?

Dado que ArrayList puede almacenar cualquier tipo de dato, puedes utilizar IronPDF para formatear y convertir estos diversos tipos de datos en un documento PDF cohesivo iterando a través del ArrayList y aplicando las transformaciones necesarias.

¿Cuáles son algunos consejos de solución de problemas para usar IronPDF con ArrayLists?

Asegúrate de que los datos en tu ArrayList estén correctamente formateados antes de convertirlos a PDF. Verifica si hay valores nulos y tipos de datos incompatibles, y usa las herramientas de depuración de IronPDF para identificar y resolver cualquier problema que surja durante el proceso de generación de PDF.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más