Passer au contenu du pied de page
.NET AIDE

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. Elle fait partie de l'espace de noms System.Collections.Generic et est conçue pour des situations nécessitant un accès rapide aux données triées. SortedList<TKey, TValue> est idéal lorsque vous devez maintenir des données dans un ordre particulier et accéder aux éléments efficacement 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 des paires clé-valeur : Comme un dictionnaire, SortedList stocke les données sous forme de paires clé-valeur.
  • Tri automatique : SortedList garde les valeurs associées triées par clé dans l'ordre croissant par défaut.
  • Récupération efficace des données : La récupération rapide des valeurs associées par clé le rend adapté pour les recherches.
  • Cas d'utilisation : Utile pour les applications nécessitant des données triées, comme la gestion de listes triées de noms, dates ou 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 Dictionnaire.

Mécanisme de tri

Par défaut, SortedList<TKey, TValue> trie les clés dans l'ordre croissant en utilisant l'interface IComparable, qui garantit que les clés de type chaîne et les 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 trié : Les données sont automatiquement triées par clé sans surcharge de tri supplémentaire.
  • Inconvénients :
    • Vitesse d'insertion : Plus lent que Dictionnaire pour les insertions, surtout avec de grandes tailles de données.
    • Efficacité limitée pour les opérations non basées sur les clés : Moins efficace dans les scénarios où les données ne sont pas principalement accessibles par des valeurs de clé spécifiques.

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 des améliorations de performance 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)()
$vbLabelText   $csharpLabel

Ajout d'éléments

Ajoutez des paires clé-valeur au 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")
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

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 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
$vbLabelText   $csharpLabel

Itérer sur un SortedList

Itérez sur 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
$vbLabelText   $csharpLabel

C# Sorted List (Comment ça fonctionne pour les développeurs) : Figure 1

Exemples pratiques d'utilisation de SortedList

  • Exemple 1 : Stocker et récupérer des données dans un format simple clé-valeur où l'ordre est important, comme les noms d'étudiants par leur numéro d'inscription.
  • Exemple 2 : Utiliser SortedList dans des scénarios plus complexes, comme afficher des journaux de transactions triés ou des scores classés.

Bonnes pratiques :

  • Utilisez SortedList lorsque les clés sont le point d'accès principal et doivent rester triées.
  • Pour des insertions fréquentes, envisagez des alternatives comme SortedDictionary pour une meilleure performance.

Considérations de Performance

Comparaison de SortedList avec Dictionary et List

  • SortedList vs. Dictionary : SortedList est plus lent pour les insertions par rapport à Dictionary en raison de la surcharge de tri.
  • SortedList vs. List : Contrairement à une liste, SortedList est conçu pour accéder aux éléments par clé et maintenir l'ordre trié.

Quand utiliser SortedList : Utilisez-le lorsque vous avez besoin de données triées et que vous les accédez principalement par clé, en particulier pour les scénarios axés sur la lecture.

Intégration avec IronPDF pour l'export PDF

Introduction à IronPDF

C# Sorted List (Comment ça fonctionne pour les développeurs) : Figure 2

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"}
}
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

C# Sorted List (Comment ça fonctionne pour les développeurs) : Figure 3

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 du PDF : IronPDF permet le style CSS pour les mises en page, les polices, les 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

  • Vue d'ensemble de SortedList : SortedList est une collection triée clé-valeur, idéale pour les scénarios où les données sont accédées par des clés spécifiques et doivent rester triées.
  • Utilisation d'IronPDF pour l'exportation : IronPDF est une bibliothèque pratique pour exporter des données SortedList vers des PDF, supportant des mises en page et styles personnalisés.

Conclusion

Dans cet article, nous avons exploré la classe C# SortedList, un outil puissant pour la gestion des collections triées de données clé-valeur. SortedList est particulièrement utile dans des scénarios où l'ordre et l'accès efficace par clé sont cruciaux. De la création, l'ajout et la suppression d'éléments à l'intégration avec IronPDF pour l'exportation PDF, nous avons couvert des étapes pratiques et des bonnes pratiques pour utiliser SortedList dans des applications réelles.

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 la création facile de rapports professionnels 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 bénéficient d'une solution robuste et efficace pour gérer et rapporter 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 sortedList = new 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.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite