C# Sorted List (Comment ça fonctionne pour les développeurs)
Introduction à 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 d'un tri automatique par clés. Il fait partie de l'espace de noms System.Collections.Generic et est conçu 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 :
SortedListconserve par défaut les valeurs associées triées par clé dans l'ordre croissant. - 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 dans l'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, en particulier 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 SortedList en C
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 améliorer les 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
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");
sortedList.Add(1, "Apple")
sortedList.Add(3, "Banana")
sortedList.Add(2, "Cherry")
Accès et modification des éléments
Accédez aux éléments d'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
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 les é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 la suppression contrôlée d'objets du 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
Itérer sur un SortedList
Parcourir 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}");
}
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 principal point d'accès et doivent rester triées. - Pour les 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 :
Install-Package 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" }
};
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
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 des collections de données triées de type clé-valeur. SortedList est particulièrement utile dans les scénarios où l'ordre et l'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'exportation PDF, nous avons couvert les étapes pratiques et les meilleures pratiques pour l'utilisation de SortedList dans des applications réelles.
De plus, nous avons montré comment IronPDF peut simplifier la tâche d'exportation de valeurs spécifiques d'un SortedList au format PDF, permettant la création facile de rapports Professional 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 générer des rapports sur des données triées dans les applications C#.
Questions Fréquemment Posées
Qu'est-ce qu'un SortedList en C# et comment fonctionne-t-il ?
Un C# SortedList est une collection de paires clé-valeur qui trie automatiquement les clés. Il fait partie de l'espace de noms System.Collections.Generic et est utile pour les scénarios nécessitant un accès à des données triées. Le SortedList maintient son ordre en utilisant une structure hybride entre un tableau et une table de hachage, offrant un accès efficace basé sur les clés.
Comment puis-je créer un SortedList en C# ?
Vous pouvez créer un SortedList en C# en utilisant le constructeur par défaut ou en passant un IComparer pour un tri personnalisé. Un exemple de création d'un SortedList est : SortedList
Quels sont les avantages d'utiliser un SortedList par rapport à un Dictionary en C# ?
Le principal avantage d'utiliser un SortedList par rapport à un Dictionary est qu'un SortedList trie automatiquement les clés, ce qui est bénéfique lorsque vous avez besoin de données triées et que vous y accédez principalement par clé. C'est particulièrement utile dans les scénarios avec une forte fréquence de lectures.
Comment puis-je ajouter des éléments à un SortedList en C# ?
Les éléments peuvent être ajoutés à un C# SortedList en utilisant la méthode Add. Cette méthode garantit que les éléments restent triés par clé, maintenant l'ordre du SortedList.
Un SortedList peut-il être utilisé pour exporter des données en PDF ?
Oui, vous pouvez utiliser IronPDF pour générer des rapports PDF à partir des données SortedList. Cela permet aux développeurs de créer des documents PDF à partir de collections de données clé-valeur triées, illustrant les capacités d'intégration d'IronPDF avec les applications C#.
Quelles sont les applications courantes d'un C# SortedList ?
Les applications courantes d'un C# SortedList incluent le stockage de listes ordonnées telles que les noms d'étudiants par numéros de série ou la maintenance de journaux de transactions triés. Il est particulièrement utile dans les applications où les données doivent être accessibles dans un ordre trié.
Comment un SortedList se comporte-t-il en termes d'insertion et de suppression d'opérations ?
Un SortedList peut être plus lent qu'un Dictionary pour les opérations d'insertion et de suppression, en particulier avec des tailles de données importantes. Cela est dû à sa structure hybride, qui privilégie les recherches efficaces et le maintien de l'ordre trié.
Quel est l'ordre de tri par défaut des clés dans un C# SortedList ?
L'ordre de tri par défaut dans un C# SortedList est ascendant. Il utilise l'interface IComparable pour trier automatiquement les clés, à moins qu'un IComparer personnalisé ne soit fourni.




