AYUDA .NET

C# Collection (Cómo funciona para desarrolladores)

Publicado en 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 las colecciones de C

  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, que 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#, lo que significa importar espacios de nombres comoSystem.Collections y System.Collections.Generic, que ofrece varias clases de colecciones genéricas y 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.

Tipos de colecciones clave de C

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); // adds element '6' to the end
numbers.Remove(3); // removes all the items that are '3'
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // adds element '6' to the end
numbers.Remove(3); // removes all the items that are '3'
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Add(6) ' adds element '6' to the end
numbers.Remove(3) ' removes all the items that are '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); // the string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // setting the key "Jane" to hold the value 30
Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); // the string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // setting the key "Jane" to hold the value 30
Dim ageMap As New Dictionary(Of String, Integer)()
ageMap.Add("John", 25) ' the string "John" is the key that can access the value 25
ageMap("Jane") = 30 ' setting the key "Jane" to hold the value 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>(); // creating a queue class
tasks.Enqueue("Task 1"); // adding to the queue
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); // creating a stack class
numbers.Push(3.14); // adding to the stack
numbers.Push(2.71);
Queue<string> tasks = new Queue<string>(); // creating a queue class
tasks.Enqueue("Task 1"); // adding to the queue
tasks.Enqueue("Task 2");
Stack<double> numbers = new Stack<double>(); // creating a stack class
numbers.Push(3.14); // adding to the stack
numbers.Push(2.71);
Dim tasks As New Queue(Of String)() ' creating a queue class
tasks.Enqueue("Task 1") ' adding to the queue
tasks.Enqueue("Task 2")
Dim numbers As New Stack(Of Double)() ' creating a stack class
numbers.Push(3.14) ' adding to the stack
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); // combining setA and setB
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); // combining setA and setB
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) ' combining setA and setB
VB   C#

IronPDF

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

Una biblioteca de C# llamadaIronPDF 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 valiosa herramienta para los desarrolladores de C#.

La característica más destacada de IronPDF es suConversión de HTML a PDF se trata de una herramienta que mantiene todos los diseños y estilos. Genera archivos PDF a partir de contenido web, por lo que es perfecto para informes, facturas y documentación. Los archivos HTML, las URL y las cadenas HTML se pueden convertir en PDF sin esfuerzo.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   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. Esto es especialmente útil para quienes ya están familiarizados con las herramientas de desarrollo web y desean utilizar HTML y CSS para crear PDF.
  • 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 está diseñado para funcionar tanto con .NET Core como con .NET Framework, lo que permite utilizarlo en diversas aplicaciones y plataformas.
  • Optimización del rendimiento: Incluso cuando se trabaja con documentos PDF grandes o complicados, la biblioteca está diseñada para proporcionar una producción y renderización de PDF eficientes.

    Para obtener más información sobre la documentación de IronPDF, consulte el documentoDocumentación en IronPDF.

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) },
    // Add more transactions as needed
};
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) },
    // Add more transactions as needed
};
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();
// HTML content with a table populated by data from the 'transactions' list
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>";
// Convert HTML to PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
var pdfDocument = new IronPdf.HtmlToPdf();
// HTML content with a table populated by data from the 'transactions' list
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>";
// Convert HTML to PDF
PdfDocument pdf =  pdfDocument.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(pdfFilePath);
Dim pdfDocument = New IronPdf.HtmlToPdf()
' HTML content with a table populated by data from the 'transactions' list
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>"
' Convert HTML to 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 obtener más información sobre el código, consulteEjemplo de uso de HTML para crear un PDF.

Conclusión

La combinación de colecciones con IronPDF ofrece numerosas posibilidades 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 versión de prueba gratuita de IronPDF, visite el sitio web**Información sobre licencias IronPDF. Para obtener más información sobre Iron Software, visite la página web**Sitio web de Iron Software.

< 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.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >