
C# SortedList : comment ça fonctionne pour les développeurs
Introduction to C# SortedList
Qu'est-ce qu'un SortedList?
La classe C# SortedList est une collection de paires clé-valeur, similaire à un dictionnaire, mais elle a l'avantage supplémentaire de trier automatiquement par clés. Elle fait partie de l'espace de noms System.Collections.Generic et est conçue pour les scénarios où vous avez besoin d'un accès rapide aux données triées. SortedList<TKey, TValue> est idéal lorsque vous devez maintenir les données dans un ordre particulier et accéder efficacement aux éléments par clé.
Lors du travail avec SortedLists en parallèle des tâches de génération de PDF, IronPDF s'intègre parfaitement avec cette classe, offrant un contrôle amélioré sur la génération de PDF.
Fonctionnalités principales et cas d'utilisation
- Stockage par paires clé-valeur : comme un dictionnaire, SortedList stocke les données sous forme de paires clé-valeur.
- Tri automatique :
SortedListgarde les valeurs associées triées par clé par ordre croissant par défaut. - Récupération efficace des données : la récupération rapide des valeurs associées par clé la rend adaptée aux recherches.
- Cas d'utilisation : Utile pour les applications nécessitant des données triées, telles que la gestion de listes ordonnées de noms, de dates ou de valeurs numériques.
Comment fonctionne SortedList
Vue d'ensemble des structures de données
La classe publique SortedList est un hybride entre un tableau et une table de hachage et organise ses éléments par clé. En interne, elle utilise un tableau trié pour garder les valeurs clés en ordre, garantissant des recherches efficaces par clé. Cependant, les opérations d'insertion et de suppression peuvent être plus lentes que dans un Dictionary.
Mécanisme de tri
Par défaut, SortedList<TKey, TValue> trie les clés par ordre croissant en utilisant l'interface IComparable, ce qui garantit que les clés de type chaîne et d'autres types implémentent un comportement de comparaison par défaut. Si un ordre de tri personnalisé est nécessaire, un comparateur personnalisé peut être fourni.
Avantages et limitations
- Avantages :
- Accès rapide par clé : Fournit un accès rapide O(log n) par clé.
- Ordre de tri : les données sont automatiquement triées par clé sans surcharge de tri supplémentaire.
- Inconvénients :
- Vitesse d'insertion : Plus lente que
Dictionarypour les insertions, surtout avec des tailles de données importantes. - Efficacité limitée pour les opérations non liées aux clés : moins efficace dans les scénarios où les données ne sont pas principalement consultées par des valeurs clés spécifiques.
- Vitesse d'insertion : Plus lente que
Travailler avec C# SortedList
Créer un SortedList
Vous pouvez créer un SortedList en C# en utilisant soit le constructeur par défaut, soit en passant un IComparer si un tri personnalisé est nécessaire. Le SortedList a une capacité initiale par défaut de 16, qui peut être ajustée pour des améliorations de performances lorsque la taille approximative est connue.
// 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)()Ajout d'éléments
Ajoutez des paires clé-valeur à SortedList en utilisant la méthode Add. Cela permet de garder les éléments triés par clé. Le code suivant garde les données du SortedList dans l'ordre croissant des clés.
sortedList.Add(1, "Apple");
sortedList.Add(3, "Banana");
sortedList.Add(2, "Cherry");sortedList.Add(1, "Apple")
sortedList.Add(3, "Banana")
sortedList.Add(2, "Cherry")Accès et modification des éléments
Accédez aux éléments dans un SortedList par leurs clés. Vous pouvez récupérer ou modifier les valeurs associées aux clés directement.
// 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"Suppression d'éléments
Supprimez des éléments en utilisant des clés spécifiques avec la méthode Remove ou en utilisant l'index spécifié avec RemoveAt. Les deux permettent une suppression contrôlée des objets de SortedList.
sortedList.Remove(3); // Removes the entry with key 3
sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0sortedList.Remove(3) ' Removes the entry with key 3
sortedList.RemoveAt(0) ' Removes the entry at the zero-based index 0Itérer sur un SortedList
Parcourez SortedList en utilisant une boucle foreach pour récupérer à la fois les clés et les valeurs dans l'ordre trié.
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
Exemples pratiques d'utilisation de SortedList
- Exemple 1 : Stockage et récupération de données dans un format clé-valeur simple où l'ordre est important, comme les noms des étudiants par leurs numéros de matricule.
- Exemple 2 : Utilisation de
SortedListdans des scénarios plus complexes, tels que l'affichage de journaux de transactions triés ou de scores classés.
Meilleures pratiques :
- Utilisez
SortedListlorsque les clés sont le point d'accès principal et doivent rester triées. - Pour des insertions fréquentes, envisagez des alternatives comme
SortedDictionarypour de meilleures performances.
Considérations de Performance
Comparaison de SortedList avec Dictionary et List
- SortedList vs. Dictionary : SortedList est plus lent pour les insertions que Dictionary en raison de la surcharge liée au tri.
- SortedList vs. List : Contrairement à une liste, SortedList est conçue pour accéder aux éléments par clé et maintenir l'ordre de tri.
Quand utiliser SortedList : Utilisez-le lorsque vous avez besoin de données triées et que vous y accédez principalement par clé, notamment dans les scénarios où la lecture est intensive.
Intégration avec IronPDF pour l'export PDF
Introduction à IronPDF

IronPDF est une bibliothèque puissante pour générer et modifier des fichiers PDF en C#. Il permet aux développeurs de créer des PDF à partir de diverses sources, d'ajouter du contenu par programmation et de personnaliser la mise en page des PDF. Dans cette section, nous utiliserons IronPDF pour créer un rapport PDF à partir des données du SortedList.
Génération de rapports PDF à partir des données du SortedList
Pour commencer à utiliser IronPDF, installez le package NuGet IronPDF :
Exemple : Exporter des données d'un SortedList vers un PDF
L'exemple suivant démontre comment exporter des données d'un SortedList vers un tableau PDF.
Tout d'abord, configurez votre SortedList :
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"}
}Ensuite, utilisez IronPDF pour générer un PDF à partir de ces données :
// 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")
Ce code crée un tableau HTML à partir des données du SortedList et le convertit en PDF à l'aide d'IronPDF.
Les fonctionnalités avancées
- Personnalisation de la mise en page PDF : IronPDF permet d'appliquer des styles CSS à la mise en page, aux polices, aux couleurs, etc.
- En-têtes et pieds de page : IronPDF prend en charge les en-têtes et les pieds de page, qui peuvent inclure des numéros de page ou des logos.
Résumé et Bonnes Pratiques
- Présentation de SortedList : SortedList est une collection de paires clé-valeur triée, idéale pour les scénarios où les données sont accessibles par des clés spécifiques et doivent rester triées.
- Utilisation IronPDF pour l'exportation : IronPDF est une bibliothèque pratique pour exporter les données SortedList au format PDF, prenant en charge les mises en page et les styles personnalisés.
Conclusion
Dans cet article, nous avons exploré la classe C# SortedList, un outil puissant pour gérer les collections de données triées, clé-valeur. SortedList est particulièrement utile dans les scénarios où l'ordre et un accès efficace par clé sont essentiels. De la création, l'ajout et la suppression d'éléments à l'intégration avec IronPDF pour l'export PDF, nous avons couvert les étapes pratiques et les meilleures pratiques pour utiliser SortedList dans les applications du monde réel.
De plus, nous avons montré comment IronPDF peut simplifier la tâche d'exporter des valeurs spécifiées d'un SortedList au format PDF, permettant ainsi la création facile de rapports professionnels et bien organisés. La polyvalence d'IronPDF, incluant les en-têtes, pieds de page et style CSS personnalisables, en fait un excellent choix pour générer des PDF directement depuis vos applications C#.
Si vous êtes intéressé par l'essai d'IronPDF, il propose une version d'essai gratuite qui vous permet d'explorer l'intégralité de ses fonctionnalités sans engagement. Cet essai permet de tester la génération de PDF, les options de personnalisation et l'intégration dans des projets existants pour s'assurer qu'il répond à vos besoins. En combinant SortedList et IronPDF, les développeurs obtiennent une solution robuste et efficace pour gérer et rapporter les données triées dans les applications C#.

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.
Articles connexes


