AYUDA .NET

C# ArrayList (Cómo funciona para desarrolladores)

Actualizado 6 de marzo, 2024
Compartir:

La clase ArrayList forma parte del espacio de nombres collections de .NET Framework, diseñado 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. En ArrayList puede contener elementos duplicados y permite un redimensionamiento dinámico a medida que se añade o elimina un valor válido. En este artículo, vamos a discutir acerca de los fundamentos de ArrayList y IronPDF biblioteca.

Conceptos básicos de ArrayList

El ArrayList es esencialmente una colección no genérica, capaz de almacenar un número de elementos de cualquier tipo de datos, por lo que es una opción versátil para diversos 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. 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. Añadir elementos a una 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 las colecciones con mayor eficacia, adaptándose a las necesidades de la aplicación a medida que ésta evoluciona.

Trabajar con elementos

Añadir elementos a un ArrayList es sencillo 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 a 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 proporciona métodos para insertar y eliminar elementos en posiciones específicas o índice int. 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. Del mismo modo, 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 de ArrayList la convierte en una potente herramienta para la gestión de datos dinámicos.

Crear y añadir elementos

Para empezar a utilizar un ArrayList, primero necesitas crear una instancia del mismo. A continuación, puedes añadir elementos a la ArrayList utilizando el método Add, que inserta un objeto al final de la 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
VB   C#

C# ArrayList (Cómo Funciona Para Desarrolladores): Figura 1 - Crear Salida ArrayList

Este ejemplo muestra cómo crear un nuevo ArrayList y añadirle diferentes tipos de elementos. El bucle foreach recorre la 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")
VB   C#

Eliminación de elementos

Para eliminar elementos, son útiles los métodos Remove y RemoveAt. 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"); //  Elimina la primera aparición de "Hola".
myArrayList.RemoveAt(0); //  Elimina el elemento del índice 0
myArrayList.Remove("Hello"); //  Elimina la primera aparición de "Hola".
myArrayList.RemoveAt(0); //  Elimina el elemento del índice 0
myArrayList.Remove("Hello") '  Elimina la primera aparición de "Hola".
myArrayList.RemoveAt(0) '  Elimina el elemento del índice 0
VB   C#

Ejemplo: Gestión de un ArrayList

Crear un ejemplo avanzado de uso de ArrayList en C# implica mostrar no sólo las operaciones básicas como añadir o eliminar elementos, sino también manipulaciones más complejas como ordenar, buscar y convertir ArrayList en 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)
    {
        //  Inicializar un ArrayList con algunos elementos
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        //  Añadir elementos
        numbers.Add(6); //  Añadir un elemento al final
        numbers.AddRange(new int [] { 7, 9, 0 }); //  Añade múltiples elementos de una colección especificada.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Eliminar elementos
        numbers.Remove(1); //  Retire el elemento 1
        numbers.RemoveAt(0); //  Eliminar el primer elemento
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Clasificación
        numbers.Sort(); //  Ordenar la ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Buscar en
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); //  Encontrar el índice del elemento
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        //  Conversión de ArrayList a Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Demostración de LINQ con ArrayList (Requiere System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); //  Asignar valores a EvenNumbers a partir de los resultados filtrados.
        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)
    {
        //  Inicializar un ArrayList con algunos elementos
        ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 };
        //  Añadir elementos
        numbers.Add(6); //  Añadir un elemento al final
        numbers.AddRange(new int [] { 7, 9, 0 }); //  Añade múltiples elementos de una colección especificada.
        Console.WriteLine("Initial ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Eliminar elementos
        numbers.Remove(1); //  Retire el elemento 1
        numbers.RemoveAt(0); //  Eliminar el primer elemento
        Console.WriteLine("After Removal:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Clasificación
        numbers.Sort(); //  Ordenar la ArrayList
        Console.WriteLine("Sorted ArrayList:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Buscar en
        int searchFor = 5;
        int index = numbers.IndexOf(searchFor); //  Encontrar el índice del elemento
        if (index != -1)
        {
            Console.WriteLine($"Element {searchFor} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Element {searchFor} not found.");
        }
        Console.WriteLine("\n");
        //  Conversión de ArrayList a Array
        int [] numbersArray = (int [])numbers.ToArray(typeof(int));
        Console.WriteLine("Converted Array:");
        foreach (int number in numbersArray)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n");
        //  Demostración de LINQ con ArrayList (Requiere System.Linq)
        var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); //  Asignar valores a EvenNumbers a partir de los resultados filtrados.
        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)
		'  Inicializar un ArrayList con algunos elementos
		Dim numbers As New ArrayList() From { 5, 8, 1, 3, 2 }
		'  Añadir elementos
		numbers.Add(6) '  Añadir un elemento al final
		numbers.AddRange(New Integer () { 7, 9, 0 }) '  Añade múltiples elementos de una colección especificada.
		Console.WriteLine("Initial ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		'  Eliminar elementos
		numbers.Remove(1) '  Retire el elemento 1
		numbers.RemoveAt(0) '  Eliminar el primer elemento
		Console.WriteLine("After Removal:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		'  Clasificación
		numbers.Sort() '  Ordenar la ArrayList
		Console.WriteLine("Sorted ArrayList:")
		For Each number As Integer In numbers
			Console.Write(number & " ")
		Next number
		Console.WriteLine(vbLf)
		'  Buscar en
		Dim searchFor As Integer = 5
		Dim index As Integer = numbers.IndexOf(searchFor) '  Encontrar el índice del elemento
		If index <> -1 Then
			Console.WriteLine($"Element {searchFor} found at index {index}")
		Else
			Console.WriteLine($"Element {searchFor} not found.")
		End If
		Console.WriteLine(vbLf)
		'  Conversión de ArrayList a 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)
		'  Demostración de LINQ con ArrayList (Requiere System.Linq)
		Dim evenNumbers = numbers.Cast(Of Integer)().Where(Function(n) n Mod 2 = 0).ToList() '  Asignar valores a EvenNumbers a partir de los resultados filtrados.
		Console.WriteLine("Even Numbers:")
		evenNumbers.ForEach(Sub(n) Console.Write(n & " "))
		Console.WriteLine()
	End Sub
End Class
VB   C#

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

  • Inicializa un ArrayList con un conjunto de elementos.
  • Añadir elementos individuales y múltiples a la ArrayList.
  • Eliminar elementos por valor y por índice.
  • Ordena el ArrayList para ordenar los elementos.
  • Buscar un elemento y encontrar su índice.
  • Convierte el ArrayList en un array estándar.
  • Utilice LINQ con ArrayList para filtrar los números pares, mostrando cómo unir 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 potente 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, incluida la capacidad de generar PDF a partir de HTML añadir texto e imágenes, proteger documentos y mucho más.

Integración de IronPDF con ArrayList

Escribamos un sencillo programa en C# que cree una ArrayList de elementos y, a continuación, utilice IronPDF para generar un documento PDF con la lista de dichos elementos.

using IronPdf;
using System;
using System.Collections;
class pdfocde
{
    static void Main(string [] args)
    {
        IronPdf.License.LicenseKey = "License";
        //  Crea una nueva ArrayList y añade algunos elementos
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        //  Inicializar un nuevo documento PDF
        var Renderer = new ChromePdfRenderer();
        //  Crear una cadena HTML para contener nuestro contenido
        string htmlContent = "<h1>Items List</h1><ul>";
        //  Iterar sobre cada elemento de la ArrayList y añadirlo a la cadena HTML
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        //  Convertir la cadena HTML en un documento PDF
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        //  Guardar el PDF en un archivo
        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";
        //  Crea una nueva ArrayList y añade algunos elementos
        ArrayList itemList = new ArrayList();
        itemList.Add("Apple");
        itemList.Add("Banana");
        itemList.Add("Cherry");
        itemList.Add("Date");
        //  Inicializar un nuevo documento PDF
        var Renderer = new ChromePdfRenderer();
        //  Crear una cadena HTML para contener nuestro contenido
        string htmlContent = "<h1>Items List</h1><ul>";
        //  Iterar sobre cada elemento de la ArrayList y añadirlo a la cadena HTML
        foreach (var item in itemList)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";
        //  Convertir la cadena HTML en un documento PDF
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
        //  Guardar el PDF en un archivo
        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"
		'  Crea una nueva ArrayList y añade algunos elementos
		Dim itemList As New ArrayList()
		itemList.Add("Apple")
		itemList.Add("Banana")
		itemList.Add("Cherry")
		itemList.Add("Date")
		'  Inicializar un nuevo documento PDF
		Dim Renderer = New ChromePdfRenderer()
		'  Crear una cadena HTML para contener nuestro contenido
		Dim htmlContent As String = "<h1>Items List</h1><ul>"
		'  Iterar sobre cada elemento de la ArrayList y añadirlo a la cadena HTML
		For Each item In itemList
			htmlContent &= $"<li>{item}</li>"
		Next item
		htmlContent &= "</ul>"
		'  Convertir la cadena HTML en un documento PDF
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
		'  Guardar el PDF en un archivo
		PDF.SaveAs("e:\ItemList.pdf")
		Console.WriteLine("PDF file 'ItemList.pdf' has been generated.")
	End Sub
End Class
VB   C#

En este ejemplo, empezamos creando un ArrayList llamado itemList y lo rellenamos con varios elementos de cadena. A continuación, inicializamos una nueva instancia de la clase ChromePdfRenderer de IronPDF, que utilizaremos para convertir el 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 - Licencia

La ArrayList es una potente colección que ofrece 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 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 ampliar sus capacidades de C# a la manipulación de PDF, IronPDF ofrece una solución de prueba gratuita para explorar sus características. Las licencias comienzan a partir de $749, y ofrecen una solución completa para integrar la funcionalidad PDF en aplicaciones .NET.

< ANTERIOR
Math.Round C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Linter (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123