Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
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.
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.
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 Lista
Una matriz dinámica que facilita la inserción y extracción rápida y sencilla de elementos es la Lista
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
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
El primero en entrar, primero en salir (FIFO)y último en entrar, primero en salir (LIFO) se implementan, respectivamente, mediante el sistema genérico Queue
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)
Los elementos únicos dispuestos en una colección desordenada se representan mediante el HashSet
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
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:
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í.
Instale primero la biblioteca IronPDF utilizando la consola del gestor de paquetes o el gestor de paquetes NuGet:
Install-Package IronPdf
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.
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 Lista
Imagine que tiene que crear un informe con una lista de operaciones de venta. Los datos pueden organizarse eficazmente utilizando una Lista
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)
}
}
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)
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.
La pantalla anterior muestra la salida generada a partir del código anterior. Para más información sobre el código aquí.
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.
9 productos API .NET para sus documentos de oficina