Listas ordenadas em C# (Como funciona para desenvolvedores)
Introdução à lista ordenada em C
O que é uma lista ordenada?
A classe C# SortedList é uma coleção de pares chave-valor, semelhante a um dicionário, mas com o benefício adicional de classificação automática por chaves. Faz parte do namespace System.Collections.Generic e foi projetado para cenários em que você precisa de acesso rápido a dados classificados. SortedList<TKey, TValue> é ideal quando você precisa manter os dados em uma ordem específica e acessar os elementos de forma eficiente por chave.
Ao trabalhar com SortedLists em conjunto com tarefas de geração de PDF, o IronPDF se integra perfeitamente a essa classe, proporcionando maior controle sobre a geração de PDFs.
Principais funcionalidades e casos de uso
- Armazenamento de pares chave-valor: Assim como um dicionário, o SortedList armazena dados como pares chave-valor.
- Ordenação automática:
SortedListmantém os valores associados ordenados por chave em ordem crescente por padrão. - Recuperação eficiente de dados: A recuperação rápida de valores associados por chave torna-a adequada para pesquisas.
- Casos de uso: Útil para aplicações que necessitam de dados classificados, como o gerenciamento de listas ordenadas de nomes, datas ou valores numéricos.
Como funciona a lista ordenada (SortedList)
Visão geral da estrutura de dados
A classe pública SortedList é um híbrido entre um array e uma tabela hash e organiza seus itens por chave. Internamente, utiliza um array ordenado para manter os valores das chaves em ordem, garantindo buscas eficientes por chave. No entanto, as operações de inserção e exclusão podem ser mais lentas do que em um Dictionary.
Mecanismo de classificação
Por padrão, SortedList<TKey, TValue> classifica as chaves em ordem crescente usando a interface IComparable, que garante que as chaves de string e outros tipos implementem um comportamento de comparação padrão. Caso seja necessária uma ordem de classificação personalizada, um comparador personalizado pode ser fornecido.
Vantagens e limitações
- Prós:
- Acesso rápido por chave: Fornece acesso rápido O(log n) por chave.
- Ordem de classificação: Os dados são classificados automaticamente por chave, sem sobrecarga adicional de classificação.
- Contras:
- Velocidade de inserção: Mais lenta que
Dictionarypara inserções, especialmente com grandes volumes de dados. - Eficiência limitada para operações não essenciais: Menos eficiente em cenários onde os dados não são acessados principalmente por valores de chave específicos.
- Velocidade de inserção: Mais lenta que
Trabalhando com SortedList em C
Criando uma lista ordenada
Você pode criar um SortedList em C# usando o construtor padrão ou passando um IComparer se for necessária uma classificação personalizada. O SortedList tem uma capacidade inicial padrão de 16, que pode ser ajustada para melhorias de desempenho quando o tamanho aproximado for conhecido.
// Create a SortedList with integer keys and string values
SortedList<int, string> sortedList = new SortedList<int, string>();
// Create a SortedList with integer keys and string values
SortedList<int, string> sortedList = new SortedList<int, string>();
' Create a SortedList with integer keys and string values
Dim sortedList As New SortedList(Of Integer, String)()
Adicionando itens
Adicione pares chave-valor ao SortedList usando o método Add. Isso mantém os itens classificados por chave. O código a seguir mantém os dados da SortedList em ordem crescente de chaves.
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")
Acessando e Modificando Elementos
Acesse elementos em um SortedList por suas chaves. Você pode recuperar ou modificar diretamente os valores associados às chaves.
// Accessing a specific value by key
string value = sortedList[1]; // Retrieves "Apple"
// Modifying a value
sortedList[1] = "Avocado"; // Changes the value associated with key 1 to "Avocado"
// Accessing a specific value by key
string value = sortedList[1]; // Retrieves "Apple"
// Modifying a value
sortedList[1] = "Avocado"; // Changes the value associated with key 1 to "Avocado"
' Accessing a specific value by key
Dim value As String = sortedList(1) ' Retrieves "Apple"
' Modifying a value
sortedList(1) = "Avocado" ' Changes the value associated with key 1 to "Avocado"
Removendo itens
Remova itens usando chaves específicas com o método Remove ou usando o índice especificado com RemoveAt. Ambos permitem a exclusão controlada de objetos do SortedList.
sortedList.Remove(3); // Removes the entry with key 3
sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0
sortedList.Remove(3); // Removes the entry with key 3
sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0
sortedList.Remove(3) ' Removes the entry with key 3
sortedList.RemoveAt(0) ' Removes the entry at the zero-based index 0
Iterando sobre uma lista ordenada
Itere sobre SortedList usando um loop foreach para recuperar chaves e valores em ordem classificada.
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

Exemplos práticos de utilização de listas ordenadas
- Exemplo 1: Armazenar e recuperar dados em um formato simples de chave-valor onde a ordem é importante, como nomes de alunos por seus números de matrícula.
- Exemplo 2: Usando
SortedListem cenários mais complexos, como exibir registros de transações classificados ou pontuações classificadas.
Melhores práticas:
- Use
SortedListquando as chaves forem o ponto de acesso principal e precisarem permanecer classificadas. - Para inserções frequentes, considere alternativas como
SortedDictionarypara melhor desempenho.
Considerações sobre o desempenho
Comparando SortedList com Dictionary e List
- SortedList vs. Dictionary: SortedList é mais lento para inserções em comparação com Dictionary devido à sobrecarga de ordenação.
- SortedList vs. List: Ao contrário de uma lista, o SortedList foi projetado para acessar elementos por chave e manter a ordem classificada.
Quando usar SortedList: Use-o quando precisar de dados ordenados e acessá-los principalmente por chave, especialmente em cenários com grande volume de leituras.
Integração com o IronPDF para exportação de PDFs
Introdução ao IronPDF

IronPDF é uma biblioteca poderosa para gerar e modificar arquivos PDF em C#. Permite aos desenvolvedores criar PDFs a partir de diversas fontes, adicionar conteúdo programaticamente e personalizar layouts de PDF. Nesta seção, usaremos o IronPDF para criar um relatório em PDF a partir de dados de uma lista ordenada.
Geração de relatórios em PDF a partir de dados de listas ordenadas
Para começar a usar o IronPDF , instale o pacote NuGet do IronPDF :
Install-Package IronPdf
Exemplo: Exportando dados de uma lista ordenada para um PDF
O exemplo a seguir demonstra como exportar dados de uma SortedList para uma tabela em PDF.
Primeiro, configure seu 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"}
}
Em seguida, use o IronPDF para gerar um PDF a partir desses dados:
// Initialize a PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Build HTML string with table format
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>";
// Render HTML to PDF and save it
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
// Initialize a PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Build HTML string with table format
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>";
// Render HTML to PDF and save it
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
' Initialize a PDF renderer
Dim renderer As New ChromePdfRenderer()
' Build HTML string with table format
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>"
' Render HTML to PDF and save it
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("sortedList.pdf")

Este código cria uma tabela HTML a partir dos dados da SortedList e a converte em um PDF usando o IronPDF.
Recursos avançados
- Personalização do layout do PDF: O IronPDF permite estilização CSS para layouts, fontes, cores, etc.
- Cabeçalhos e rodapés: O IronPDF suporta cabeçalhos e rodapés, que podem incluir números de página ou logotipos.
Resumo e Melhores Práticas
- Visão geral do SortedList: SortedList é uma coleção ordenada de chave-valor, ideal para cenários em que os dados são acessados por chaves específicas e precisam permanecer ordenados.
- Usando o IronPDF para Exportar: O IronPDF é uma biblioteca prática para exportar dados de SortedList para PDFs, com suporte a layouts e estilos personalizados.
Conclusão
Neste artigo, exploramos a classe C# SortedList, uma ferramenta poderosa para gerenciar coleções de dados ordenadas por chave-valor. SortedList é especialmente útil em cenários onde a ordem e o acesso eficiente por chave são críticos. Desde a criação, adição e remoção de elementos até a integração com o IronPDF para exportação em PDF, abordamos etapas práticas e melhores práticas para usar o SortedList em aplicações do mundo real.
Além disso, mostramos como o IronPDF pode simplificar a tarefa de exportar valores específicos de um arquivo SortedList para o formato PDF, permitindo a criação fácil de relatórios profissionais e bem organizados. A versatilidade do IronPDF, incluindo cabeçalhos, rodapés e estilos CSS personalizáveis, o torna uma excelente opção para gerar PDFs diretamente de seus aplicativos C#.
Se você estiver interessado em experimentar o IronPDF, ele oferece um período de teste gratuito que permite explorar todos os seus recursos sem compromisso. Esta versão de avaliação permite testar a geração de PDFs, as opções de personalização e a integração em projetos existentes para garantir que atenda às suas necessidades. Ao combinar SortedList e IronPDF, os desenvolvedores obtêm uma solução robusta e eficiente para gerenciar e gerar relatórios de dados classificados em aplicativos C#.
Perguntas frequentes
O que é uma SortedList em C# e como ela funciona?
A SortedList do AC# é uma coleção de pares chave-valor que ordena automaticamente as chaves. Ela faz parte do namespace System.Collections.Generic e é útil em cenários onde o acesso a dados ordenados é necessário. A SortedList mantém sua ordem usando uma estrutura híbrida entre um array e uma tabela hash, proporcionando acesso eficiente baseado em chaves.
Como posso criar uma SortedList em C#?
Você pode criar um SortedList em C# usando o construtor padrão ou passando um IComparer para ordenação personalizada. Um exemplo de criação de um SortedList é: SortedList
Quais são as vantagens de usar uma SortedList em vez de um Dictionary em C#?
A principal vantagem de usar um SortedList em vez de um Dictionary é que o SortedList ordena automaticamente as chaves, o que é benéfico quando você precisa de dados ordenados e acessa-os principalmente por chave. Isso é particularmente útil em cenários com grande volume de leituras.
Como posso adicionar itens a uma SortedList em C#?
É possível adicionar itens a uma SortedList em C# usando o método Add . Esse método garante que os itens permaneçam ordenados por chave, mantendo a ordem da SortedList.
É possível usar uma SortedList para exportar dados como um PDF?
Sim, você pode usar o IronPDF para gerar relatórios em PDF a partir de dados de listas ordenadas. Isso permite que os desenvolvedores criem documentos PDF a partir de coleções de dados ordenados por chave-valor, demonstrando os recursos de integração do IronPDF com aplicativos C#.
Quais são algumas aplicações comuns de uma SortedList em C#?
Aplicações comuns de um SortedList em C# incluem armazenar listas ordenadas, como nomes de alunos por número de matrícula, ou manter registros de transações ordenados. É especialmente útil em aplicações onde os dados precisam ser acessados em ordem classificada.
Qual o desempenho de uma SortedList em termos de operações de inserção e remoção?
Uma SortedList pode ser mais lenta que um Dictionary para operações de inserção e remoção, principalmente com grandes volumes de dados. Isso se deve à sua estrutura híbrida, que prioriza buscas eficientes e a manutenção da ordem de classificação.
Qual é a ordem de classificação padrão das chaves em um SortedList em C#?
A ordem de classificação padrão em um SortedList do C# é crescente. Ele usa a interface IComparable para classificar as chaves automaticamente, a menos que um IComparer personalizado seja fornecido.




