AYUDA .NET

C# Collection (Cómo funciona para desarrolladores)

Actualizado 6 de marzo, 2024
Compartir:

Introducción

C# se ha convertido en una opción popular y adaptable para los desarrolladores entre los muchos lenguajes de programación disponibles. La idea de las colecciones es el núcleo de la amplia biblioteca y los marcos de trabajo de C#, que constituyen una de las principales ventajas del lenguaje. En C#, una colección es esencial para almacenar y organizar datos de forma eficaz. Ofrecen a los desarrolladores una amplia gama de herramientas eficaces para resolver problemas de programación complejos. En esta entrada profundizaremos en las colecciones, cubriendo sus características, tipos y estrategias de uso óptimas.

Cómo utilizar C# Colecciones

  1. Cree un nuevo proyecto de aplicación de consola.
  2. Crear un objeto para la colección en C#.
  3. Añade los valores a la clase collection, puede almacenar múltiples conjuntos de objetos
  4. Procesar las operaciones de valor como añadir, eliminar, ordenar, etc,
  5. Muestra el resultado y elimina el objeto.

C#: Comprender las colecciones

Las colecciones, en C#, son contenedores que permiten a los programadores trabajar y almacenar conjuntos de clases de objetos. Estos objetos son flexibles y adaptables a muchos entornos de programación, y pueden ser del mismo tipo o de tipos distintos. La mayoría de las clases de colección implementan componentes del Sistema en C#, esto significa importar espacios de nombres como System.Collections y System.Collections.Generic que ofrece varias clases de colección que son tanto genéricas como no genéricas. Las colecciones también permiten asignar memoria dinámica, añadir, buscar y ordenar los elementos de las clases de colecciones.

Tipos de recogida no genéricos

ArrayList, Hashtable y Queue son algunas de las clases de colección no genéricas disponibles en C# que se incluyeron en las primeras iteraciones del lenguaje. Estas colecciones ofrecen una alternativa a la definición explícita del tipo de cosas que desea conservar y con las que desea trabajar. Sin embargo, los desarrolladores suelen elegir colecciones genéricas por su mayor rendimiento y seguridad de tipos.

Colecciones genéricas

Las iteraciones posteriores de C# incluyeron colecciones genéricas para superar los inconvenientes de las colecciones no genéricas. Proporcionan seguridad tipográfica durante la compilación y permiten a los desarrolladores trabajar con datos estrechamente tipados. Las clases genéricas de colección ListaDiccionario<TKey, TValue>Colay Pilason algunos de los más utilizados. Estas colecciones son la opción preferida en el desarrollo contemporáneo de C# porque proporcionan un mejor rendimiento y verificación de tipos en tiempo de compilación.

Clave C# Tipos de colección

1. Lista

Una matriz dinámica que facilita la inserción y extracción rápida y sencilla de elementos es la Listaclase. Es una opción flexible para situaciones que requieren una colección redimensionable, ya que ofrece formas de filtrar, buscar y manipular componentes.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); //  añade el elemento "6" al final
numbers.Remove(3); //  elimina todos los elementos que sean "3
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); //  añade el elemento "6" al final
numbers.Remove(3); //  elimina todos los elementos que sean "3
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Add(6) '  añade el elemento "6" al final
numbers.Remove(3) '  elimina todos los elementos que sean "3
VB   C#

2. Diccionario<TKey, TValue>

Con velocidades de búsqueda rápidas, una colección de pares clave-valor se representa mediante la clase Dictionary<TKey, TValue>. Se emplea con frecuencia en situaciones en las que es crucial disponer de un acceso rápido a los datos a través de un valor clave especial. Esta clave se utiliza para acceder a los elementos del diccionario.

Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); //  la cadena "Juan" es la clave, que puede acceder al valor 25
ageMap ["Jane"] = 30; //  establecer la clave "Jane" para mantener el valor 30
Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); //  la cadena "Juan" es la clave, que puede acceder al valor 25
ageMap ["Jane"] = 30; //  establecer la clave "Jane" para mantener el valor 30
Dim ageMap As New Dictionary(Of String, Integer)()
ageMap.Add("John", 25) '  la cadena "Juan" es la clave, que puede acceder al valor 25
ageMap ("Jane") = 30 '  establecer la clave "Jane" para mantener el valor 30
VB   C#

3. Colay Pila

El primero en entrar, primero en salir (FIFO)y último en entrar, primero en salir (LIFO) se implementan, respectivamente, mediante el sistema genérico Queuey Stack genéricoclases. Pueden utilizarse para gestionar elementos en una secuencia determinada en función de las necesidades de la aplicación.

Queue<string> tasks = new Queue<string>(); //  creación de una clase de cola
tasks.Enqueue("Task 1"); //  añadir a la cola
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); //  creación de una clase de pila
numbers.Push(3.14); //  añadir a la pila
numbers.Push(2.71);
Queue<string> tasks = new Queue<string>(); //  creación de una clase de cola
tasks.Enqueue("Task 1"); //  añadir a la cola
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); //  creación de una clase de pila
numbers.Push(3.14); //  añadir a la pila
numbers.Push(2.71);
Dim tasks As New Queue(Of String)() '  creación de una clase de cola
tasks.Enqueue("Task 1") '  añadir a la cola
tasks.Enqueue("Task 2")
Dim numbers As New Stack(Of Double)() '  creación de una clase de pila
numbers.Push(3.14) '  añadir a la pila
numbers.Push(2.71)
VB   C#

4. HashSet

Los elementos únicos dispuestos en una colección desordenada se representan mediante el HashSetclase. Ofrece formas eficaces de realizar operaciones con conjuntos, como la diferencia, la unión y la intersección.

HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); //  combinar conjuntoA y conjuntoB
HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); //  combinar conjuntoA y conjuntoB
Dim setA As New HashSet(Of Integer) From {1, 2, 3, 4}
Dim setB As New HashSet(Of Integer) From {3, 4, 5, 6}
Dim unionSet As New HashSet(Of Integer)(setA)
unionSet.UnionWith(setB) '  combinar conjuntoA y conjuntoB
VB   C#

IronPDF

Colección C# (Cómo funciona para los desarrolladores): Figura 1 - Página web de IronPDF

Una biblioteca de C# llamada IronPDF facilita la creación, edición y visualización de documentos PDF en aplicaciones .NET. Ofrece muchas opciones de licencia, compatibilidad multiplataforma, renderizado de alta calidad y conversión de HTML a PDF. La sencilla API de IronPDF facilita el manejo de archivos PDF, lo que la convierte en una herramienta útil para los desarrolladores de C#.

Entre las principales características de IronPDF se incluyen:

  • Convertir HTML a PDF: Con IronPDF, los programadores pueden crear documentos PDF a partir de texto HTML, incluidos CSS y JavaScript. A quienes ya estén familiarizados con las herramientas de desarrollo web y deseen utilizar HTML y CSS para crear PDF les resultará muy útil.
  • Generación y manipulación de PDF: La biblioteca ofrece la posibilidad de crear documentos PDF desde cero mediante programación. Además, facilita la edición de PDF preexistentes, permitiendo operaciones como la extracción de texto, la adición de marcas de agua, la división de PDF, etc.
  • Renderizado superior: IronPDF utiliza un motor de renderizado para generar resultados PDF del más alto calibre, garantizando que los documentos finales conserven la claridad y la integridad visual.
  • Compatibilidad entre plataformas: IronPDF puede utilizarse en diversas aplicaciones y plataformas porque está diseñado para funcionar tanto con .NET Core como con .NET Framework.
  • Optimización del rendimiento: Incluso cuando se trabaja con documentos PDF grandes o complicados, la biblioteca está diseñada para ofrecer una producción y renderización de PDF eficientes.

    Para saber más sobre la documentación de IronPDF, consulte aquí.

Instalación de IronPDF

Instale primero la biblioteca IronPDF utilizando la consola del gestor de paquetes o el gestor de paquetes NuGet:

Install-Package IronPdf

Colección C# (Cómo funciona para desarrolladores): Figura 2 - Instalación de IronPDF con la consola del gestor de paquetes

Otra opción es utilizar el gestor de paquetes NuGet para buscar el paquete "IronPDF". Podemos elegir y descargar el paquete necesario de esta lista de todos los paquetes NuGet asociados con IronPDF.

Colección C# (Cómo funciona para desarrolladores): Figura 3 - Instalación de IronPDF con el gestor de paquetes NuGet

Creación de documentos con colecciones mediante IronPDF

Comprender el papel que desempeñan las colecciones en las estructuras y organización de datos es crucial antes de adentrarnos en la interfaz con IronPDF. Los desarrolladores pueden almacenar, recuperar y modificar agrupaciones de cosas de forma organizada mediante el uso de colecciones. Con tantos tipos diferentes disponibles, como la ListaDiccionario<TKey, TValue>y HashSetLos desarrolladores pueden seleccionar la colección que mejor se adapte a sus necesidades.

Imagine que tiene que crear un informe con una lista de operaciones de venta. Los datos pueden organizarse eficazmente utilizando una Listaque sirve de base para el tratamiento y la visualización adicionales.

public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    //  Añadir más transacciones según sea necesario
};
public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    //  Añadir más transacciones según sea necesario
};
Public Class Transaction
	Public Property ProductName() As String
	Public Property Amount() As Decimal
	Public Property [Date]() As DateTime
End Class
Private transactions As New List(Of Transaction) From {
	New Transaction With {
		.ProductName = "Product A",
		.Amount = 100.50D,
		.Date = DateTime.Now.AddDays(-2)
	},
	New Transaction With {
		.ProductName = "Product B",
		.Amount = 75.20D,
		.Date = DateTime.Now.AddDays(-1)
	}
}
VB   C#

En el PDF, haremos una tabla sencilla que enumere el nombre del producto, el importe de la transacción y la fecha de cada uno.

var pdfDocument = new IronPdf.HtmlToPdf();
//  Contenido HTML con una tabla rellenada con datos de la lista "transacciones
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";
//  Convertir HTML a PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
var pdfDocument = new IronPdf.HtmlToPdf();
//  Contenido HTML con una tabla rellenada con datos de la lista "transacciones
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";
//  Convertir HTML a PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
Dim pdfDocument = New IronPdf.HtmlToPdf()
'  Contenido HTML con una tabla rellenada con datos de la lista "transacciones
Dim htmlContent As String = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>"
For Each transaction In transactions
	htmlContent &= $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>"
Next transaction
htmlContent &= "</table>"
'  Convertir HTML a PDF
Dim pdf As PdfDocument = pdfDocument.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs(pdfFilePath)
VB   C#

Los desarrolladores tienen la opción de guardar el documento PDF en el disco o mostrarlo a los usuarios una vez producido. IronPDF ofrece varias opciones de salida, incluida la transmisión por navegador, el guardado de archivos y la integración de almacenamiento en la nube.

Colección C# (Cómo funciona para desarrolladores): Figura 4 - PDF resultante del código anterior

La pantalla anterior muestra la salida generada a partir del código anterior. Para más información sobre el código aquí.

Conclusión

La combinación de colecciones con IronPDF hace posible una plétora de oportunidades para la producción dinámica de documentos. Los desarrolladores pueden gestionar y organizar eficazmente los datos utilizando colecciones, e IronPDF facilita la creación de documentos PDF visualmente atractivos. La potencia combinada de IronPDF y collections ofrece una solución fiable y adaptable para la producción de contenido dinámico en aplicaciones C#, independientemente del tipo de documento que esté produciendo: facturas, informes o cualquier otra cosa.

La edición Lite $749 de IronPDF incluye un año de soporte de software, opciones de actualización y una licencia permanente. Los usuarios también tienen la oportunidad de evaluar el producto en circunstancias reales durante el periodo de prueba con marca de agua. Para obtener más información sobre el coste, la licencia y la prueba gratuita de IronPDF, visite la licencia página. Para más información sobre Iron Software, visite este enlace sitio web.

< ANTERIOR
MSTest C# (Cómo funciona para desarrolladores )
SIGUIENTE >
Operador condicional nulo de C# (Cómo funciona para desarrolladores)

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

Comenzar prueba gratuita Descargas totales: 9,541,998
Ver licencias >