
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);
}
}
}Imports System
Imports System.Collections
Module Program
' The main entry point of the program
Sub Main()
' Create a new ArrayList
Dim myArrayList As New ArrayList()
' Add elements of different types
myArrayList.Add("Hello")
myArrayList.Add(100)
Dim item = "World"
myArrayList.Add(item)
' Iterate through the ArrayList and print each element
For Each obj In myArrayList
Console.WriteLine(obj)
Next
End Sub
End Module
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")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 0myArrayList.Remove("Hello") ' Removes the first occurrence of "Hello"
myArrayList.RemoveAt(0) ' Removes the element at index 0Ejemplo: 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();
}
}Imports System
Imports System.Collections
Imports System.Linq
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
Console.WriteLine(vbCrLf)
' 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
Console.WriteLine(vbCrLf)
' Sorting
numbers.Sort() ' Sort the ArrayList
Console.WriteLine("Sorted ArrayList:")
For Each number As Integer In numbers
Console.Write(number & " ")
Next
Console.WriteLine(vbCrLf)
' 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(vbCrLf)
' 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
Console.WriteLine(vbCrLf)
' 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 ClassEste 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.

Introducción de IronPDF: Biblioteca PDF de C#

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.");
}
}Imports IronPdf
Imports System
Imports System.Collections
Class PdfCode
Shared Sub Main(ByVal args() As String)
' Set your IronPDF license key here
IronPdf.License.LicenseKey = "Your_License_Key"
' 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
htmlContent += "</ul>"
' Convert the HTML string to a PDF document
Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF to a file
PDF.SaveAs("ItemList.pdf")
Console.WriteLine("PDF file 'ItemList.pdf' has been generated.")
End Sub
End ClassEn 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:

Conclusión
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 a partir de $999, proporcionando una solución integral para integrar la funcionalidad PDF en aplicaciones .NET.

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.
Artículos Relacionados


