AYUDA .NET

Lista ordenada en C# (Cómo funciona para desarrolladores)

Publicado en 15 de diciembre, 2024
Compartir:

Introducción a C# SortedList

¿Qué es un SortedList?

La clase SortedList en C# es una colección de pares clave-valor, similar a un diccionario, pero con el beneficio adicional de ordenar automáticamente por claves. Forma parte del espacio de nombres System.Collections.Generic y está diseñado para situaciones en las que necesitas un acceso rápido a datos ordenados. SortedList TKey, TValue es ideal cuando necesitas mantener los datos en un orden particular y acceder a los elementos por clave de manera eficiente.

Cuando se trata de trabajar conListasOrdenadasjunto con las tareas de generación de PDF, IronPDF se integra perfectamente con esta clase, brindándole aún más control sobre la generación de PDF.

Características Clave y Casos de Uso

  • Almacenamiento de pares clave-valor: Al igual que un diccionario, SortedList almacena datos como pares clave-valor.
  • Clasificación automática: SortedList mantiene los valores asociados ordenados por clave, en orden ascendente de manera predeterminada.
  • Recuperación Eficiente de Datos: La rápida recuperación de valores asociados por clave lo hace adecuado para búsquedas.
  • Casos de uso: SortedList es útil para aplicaciones que necesitan datos ordenados, como gestionar listas ordenadas de nombres, fechas o valores numéricos.

Cómo funciona SortedList

Descripción de la Estructura de Datos

La clase pública SortedList es un híbrido entre un array y una tabla hash, y organiza sus elementos por clave. Internamente, utiliza un array ordenado para mantener los valores clave en orden, lo que significa que, aunque las búsquedas por clave son eficientes, las operaciones de inserción y eliminación pueden ser más lentas que en un Diccionario.

Mecanismo de ordenamiento

De forma predeterminada, SortedList TKey, TValue ordena las claves en orden ascendente utilizando la interfaz IComparable, lo que garantiza que las claves de cadena y otros tipos implementen un comportamiento de comparación predeterminado. Si se necesita un orden de clasificación personalizado, se puede proporcionar un comparador personalizado.

Ventajas y limitaciones

  • Pros:

    • Acceso Rápido a Claves: Proporciona un acceso rápido a(log n)acceso por clave.
    • Ordenado: Los datos se ordenan automáticamente por clave, por lo que no se necesita ordenamiento adicional.
  • Contras:

    • Velocidad de inserción: Más lenta que Dictionary para inserciones, especialmente con grandes conjuntos de datos.
    • Eficiencia limitada para operaciones no clave: Limitada en casos donde los datos no se acceden principalmente mediante valores de clave específicos.

Trabajando con C# SortedList

Creando una SortedList

Para crear un SortedList en C#, puedes usar el constructor predeterminado o pasar un IComparer si necesitas un ordenamiento personalizado. SortedList tiene una capacidad inicial predeterminada de 16, pero si conoces el tamaño aproximado de antemano, esto se puede especificar para mejorar el rendimiento.

SortedList<int, string> sortedList = new SortedList<int, string>();
SortedList<int, string> sortedList = new SortedList<int, string>();
Dim sortedList As New SortedList(Of Integer, String)()
VB   C#

Añadir elementos

Puede añadir pares clave-valor a la SortedList utilizando el método Add, lo que mantendrá los elementos ordenados por clave. En el siguiente ejemplo de código, la SortedList se ordena por los valores de clave especificados, manteniendo automáticamente los datos en orden ascendente.

sortedList.Add(1, "Apple");
sortedList.Add(3, "Banana");
sortedList.Add(2, "Cherry");
sortedList.Add(1, "Apple");
sortedList.Add(3, "Banana");
sortedList.Add(2, "Cherry");
sortedList.Add(1, "Apple")
sortedList.Add(3, "Banana")
sortedList.Add(2, "Cherry")
VB   C#

Acceso y modificación de elementos

Accede a los elementos en un SortedList utilizando sus claves. Puedes recuperar o modificar cualquier valor especificado asociado con claves directamente.

// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
' Accessing a specific value by key
Dim value As String = sortedList(1) ' "Apple"
' Modifying a value
sortedList(1) = "Avocado"
VB   C#

Eliminando elementos

Puede eliminar elementos utilizando claves especificadas mediante el método Remove o eliminarlos utilizando el índice especificado mediante RemoveAt. Ambas opciones permiten la eliminación controlada de los datos del objeto especificado en el SortedList.

sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3) ' Removes key 3
sortedList.RemoveAt(0) ' Removes item at a zero-based index 0
VB   C#

Iterando sobre un SortedList

Puedes iterar sobre SortedList usando un bucle foreach, que recupera tanto las claves como los valores en orden clasificado.

foreach (KeyValuePair<int, string> kvp in sortedList)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
foreach (KeyValuePair<int, string> kvp in sortedList)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
For Each kvp As KeyValuePair(Of Integer, String) In sortedList
	Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}")
Next kvp
VB   C#

Lista Ordenada de C#(Cómo funciona para desarrolladores): Figura 1

Ejemplos prácticos de uso de SortedList

  • Ejemplo 1: Almacenar y recuperar datos en un formato simple de clave-valor donde el orden importa, como los nombres de estudiantes por sus números de matrícula.
  • Ejemplo 2: Usar SortedList en escenarios más complejos, como mostrar registros de transacciones ordenados o puntuaciones clasificadas.

    Mejores prácticas:

  • Utilice SortedList cuando las claves sean el punto de acceso principal y necesiten mantenerse ordenadas.
  • Para inserciones frecuentes, considere alternativas como SortedDictionary para un mejor rendimiento.

Consideraciones sobre el rendimiento

Comparación entre SortedList, Dictionary y List

  • SortedList vs. Dictionary: SortedList es más lento para las inserciones que Dictionary debido a su mecanismo de ordenamiento.
  • SortedList vs. List: A diferencia de una lista, SortedList está diseñada para acceder a los elementos por clave y mantiene los elementos en orden ordenado.

    Cuándo utilizar SortedList: Úselo cuando necesite datos ordenados y principalmente acceda a ellos por clave, especialmente para escenarios con muchas lecturas.

Integración con IronPDF para exportar PDF

Introducción a IronPDF

Lista Ordenada en C# (Cómo Funciona para Desarrolladores): Figura 2

IronPDFes una biblioteca potente para generar y modificar archivos PDF en C#. Permite a los desarrolladores crear archivos PDF a partir de diversas fuentes, añadir contenido de forma programática y personalizar los diseños de PDF. En esta sección, utilizaremos IronPDF para crear un informe PDF a partir de datos de SortedList.

Generación de informes PDF a partir de datos de SortedList

Para comenzar a usar IronPDF, instale el paquete NuGet de IronPDF:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

Ejemplo: Exportar datos de un SortedList a un PDF

El siguiente ejemplo demuestra cómo exportar datos de un SortedList a una tabla PDF.

Primero, configure su SortedList:

SortedList<int, string> sortedList = new SortedList<int, string>
{
    { 1, "Apple" },
    { 2, "Banana" },
    { 3, "Cherry" }
};
SortedList<int, string> sortedList = new SortedList<int, string>
{
    { 1, "Apple" },
    { 2, "Banana" },
    { 3, "Cherry" }
};
Dim sortedList As New SortedList(Of Integer, String) From {
	{1, "Apple"},
	{2, "Banana"},
	{3, "Cherry"}
}
VB   C#

A continuación, utiliza IronPDF para generar un PDF a partir de estos datos:

ChromePdfRenderer renderer = new ChromePdfRenderer();
string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>";
foreach (var kvp in sortedList)
{
    html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>";
}
html += "</table>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>";
foreach (var kvp in sortedList)
{
    html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>";
}
html += "</table>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>"
For Each kvp In sortedList
	html &= $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>"
Next kvp
html &= "</table>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("sortedList.pdf")
VB   C#

C# Lista Ordenada (Cómo Funciona para Desarrolladores): Figura 3

Este código crea una tabla HTML a partir de los datos de SortedList y la convierte en un PDF usando IronPDF.

Funciones avanzadas

  • Personalización del diseño de PDF: IronPDF permite el uso de estilos CSS para diseños, fuentes, colores, etc.
  • Encabezados y pies de página: IronPDF admite encabezados y pies de página, que pueden incluir números de página o logotipos.

Resumen y Mejores Prácticas

  • Descripción general de SortedList: SortedList es una colección ordenada de pares clave-valor, ideal para escenarios donde los datos se acceden mediante una clave específica y deben permanecer ordenados.
  • Uso de IronPDF para exportar: IronPDF es una biblioteca conveniente para exportar datos de SortedList a un PDF, con soporte para diseños y estilos personalizados.

Conclusión

En este artículo, exploramos la clase SortedList de C#, una poderosa herramienta para gestionar colecciones de datos ordenados de clave-valor. SortedList es especialmente útil en escenarios donde el orden y el acceso eficiente por clave son críticos. Desde crear, agregar y eliminar elementos hasta integrar con IronPDF para la exportación de PDF, cubrimos pasos prácticos y mejores prácticas para usar SortedList en aplicaciones del mundo real.

Además, mostramos cómo IronPDFpuede simplificar la tarea de exportar valores especificados de un SortedList al formato PDF, lo que permite la fácil creación de informes profesionales y bien organizados. La versatilidad de IronPDF, que incluye encabezados, pies de página y estilos CSS personalizables, lo convierte en una excelente opción para generar PDFs directamente desde tus aplicaciones C#.

Si estás interesado en probar IronPDF, ofrece un **Prueba gratuitaque le permite explorar su gama completa de funciones sin compromiso. Con esta prueba, puedes probar la generación de PDF, las opciones de personalización y la integración en tus proyectos existentes para asegurarte de que satisfaga tus necesidades. Al combinar SortedList e IronPDF, los desarrolladores obtienen una solución robusta y eficiente para gestionar y reportar datos ordenados en aplicaciones C#.

< ANTERIOR
C# Trim (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Float (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,938,203 Ver licencias >