Zum Fußzeileninhalt springen
.NET HILFE

C# Sortierte Liste (Wie es für Entwickler funktioniert)

Einführung in C# SortedList

Was ist eine SortedList?

Die C#-Klasse SortedList ist eine Sammlung von Schlüssel-Wert-Paaren, ähnlich einem Wörterbuch, bietet aber den zusätzlichen Vorteil der automatischen Sortierung nach Schlüsseln. Es ist Teil des Namespace System.Collections.Generic und ist für Szenarien konzipiert, in denen Sie einen schnellen Zugriff auf sortierte Daten benötigen. SortedList<TKey, TValue> ist ideal, wenn Sie Daten in einer bestimmten Reihenfolge speichern und effizient über einen Schlüssel auf Elemente zugreifen müssen.

Bei Arbeiten mit SortedLists neben PDF-Generierungsaufgaben integriert sich IronPDF perfekt in diese Klasse und bietet verbesserte Kontrolle über die PDF-Erstellung.

Wichtige Funktionen und Anwendungsfälle

  • Speicherung von Schlüssel-Wert-Paaren: Ähnlich wie ein Wörterbuch speichert SortedList Daten als Schlüssel-Wert-Paare.
  • Automatische Sortierung: SortedList sortiert die zugehörigen Werte standardmäßig nach Schlüssel in aufsteigender Reihenfolge.
  • Effizienter Datenabruf: Der schnelle Abruf zugehöriger Werte über den Schlüssel macht es ideal für Nachschlagevorgänge.
  • Anwendungsfälle: Nützlich für Anwendungen, die sortierte Daten benötigen, wie z. B. die Verwaltung geordneter Listen von Namen, Datumsangaben oder numerischen Werten.

Wie SortedList funktioniert

Übersicht über die Datenstruktur

Die öffentliche Klasse SortedList ist eine Mischung aus Array und Hashtabelle und organisiert ihre Elemente nach Schlüssel. Intern verwendet sie ein sortiertes Array, um Schlüsselwerte in Ordnung zu halten, was effiziente Abfragen nach Schlüssel gewährleistet. Allerdings können Einfüge- und Löschvorgänge langsamer sein als in einem Dictionary.

Sortiermechanismus

Standardmäßig sortiert SortedList<TKey, TValue> die Schlüssel in aufsteigender Reihenfolge mithilfe der IComparable Schnittstelle, wodurch sichergestellt wird, dass Zeichenkettenschlüssel und andere Typen ein Standardvergleichsverhalten implementieren. Für eine benutzerdefinierte Sortierreihenfolge kann ein spezifischer Vergleicher angegeben werden.

Vorteile und Beschränkungen

  • Vorteile:
    • Schneller Schlüsselzugriff: Bietet schnellen Zugriff O(log n) per Schlüssel.
    • Vorsortierte Reihenfolge: Die Daten werden automatisch nach Schlüssel sortiert, ohne zusätzlichen Sortieraufwand.
  • Nachteile:
    • Einfügegeschwindigkeit: Langsamer als Dictionary bei Einfügungen, insbesondere bei großen Datenmengen.
    • Eingeschränkte Effizienz bei Operationen ohne Schlüsselbezug: Weniger effizient in Szenarien, in denen nicht primär über spezifische Schlüsselwerte auf die Daten zugegriffen wird.

Arbeiten mit C# SortedList

Erstellen einer SortedList

Sie können ein SortedList in C# erstellen, indem Sie entweder den Standardkonstruktor verwenden oder ein IComparer übergeben, wenn eine benutzerdefinierte Sortierung erforderlich ist. Der SortedList hat eine standardmäßige Anfangskapazität von 16, die zur Leistungsverbesserung angepasst werden kann, wenn die ungefähre Größe bekannt ist.

// 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

Einzelteile hinzufügen

Fügen Sie Schlüssel-Wert-Paare zu SortedList mithilfe der Methode Add hinzu. Dies hält Elemente nach Schlüssel sortiert. Der folgende Code hält die SortedList-Daten in aufsteigender Reihenfolge nach Schlüsseln.

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

Zugriff auf und Änderung von Elementen

Greifen Sie auf Elemente in einem SortedList über ihre Schlüssel zu. Sie können Werte, die mit Schlüsseln verknüpft sind, direkt abrufen oder ändern.

// 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

Elemente entfernen

Entfernen Sie Elemente mithilfe bestimmter Schlüssel mit der Methode Remove oder mithilfe des angegebenen Index mit RemoveAt. Beide ermöglichen das kontrollierte Löschen von Objekten aus dem 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

Iterieren über eine SortedList

Iteriere über SortedList mit einer foreach Schleife, um sowohl Schlüssel als auch Werte in sortierter Reihenfolge abzurufen.

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# Sortierte Liste (So funktioniert es für Entwickler): Abbildung 1

Praktische Beispiele für die Verwendung von SortedList

  • Beispiel 1: Speichern und Abrufen von Daten in einem einfachen Schlüssel-Wert-Format, bei dem die Reihenfolge wichtig ist, wie z. B. die Namen der Studenten anhand ihrer Matrikelnummern.
  • Beispiel 2: Verwendung von SortedList in komplexeren Szenarien, wie z. B. der Anzeige sortierter Transaktionsprotokolle oder Ranglisten.

Bewährte Verfahren:

  • Verwenden Sie SortedList, wenn die Schlüssel der primäre Zugriffspunkt sind und sortiert bleiben müssen.
  • Bei häufigen Einfügungen sollten Sie Alternativen wie SortedDictionary für eine bessere Performance in Betracht ziehen.

Erwägungen zur Leistung

Vergleich von SortedList mit Dictionary und List

  • SortedList vs. Dictionary: SortedList ist bei Einfügungen langsamer als Dictionary, da der Sortiervorgang mehr Aufwand bedeutet.
  • SortedList vs. List: Im Gegensatz zu einer Liste ist SortedList so konzipiert, dass man auf Elemente über einen Schlüssel zugreifen und die sortierte Reihenfolge beibehalten kann.

Wann man SortedList verwendet: Verwenden Sie es, wenn Sie sortierte Daten benötigen und primär über den Schlüssel darauf zugreifen, insbesondere bei leseintensiven Szenarien.

Integration mit IronPDF für den PDF-Export

Einführung in IronPDF

C# Sortierte Liste (So funktioniert es für Entwickler): Abbildung 2

IronPDF ist eine leistungsstarke Bibliothek zur Erstellung und Bearbeitung von PDF-Dateien in C#. Es ermöglicht Entwicklern, PDFs aus verschiedenen Quellen zu erstellen, Inhalte programmgesteuert hinzuzufügen und PDF-Layouts anzupassen. In diesem Abschnitt werden wir IronPDF verwenden, um einen PDF-Bericht aus SortedList-Daten zu erstellen.

Erzeugen von PDF-Berichten aus sortierten Listendaten

Um IronPDF zu verwenden, installieren Sie das IronPDF NuGet-Paket:

Install-Package IronPdf

Beispiel: Exportieren von Daten aus einer sortierten Liste in eine PDF-Datei

Das folgende Beispiel zeigt, wie Daten aus einer SortedList in eine PDF-Tabelle exportiert werden.

Richten Sie zunächst Ihren SortedList ein:

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

Als nächstes verwenden Sie IronPDF, um aus diesen Daten ein PDF zu erstellen:

// 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# Sortierte Liste (So funktioniert es für Entwickler): Abbildung 3

Dieser Code erstellt eine HTML-Tabelle aus den SortedList-Daten und konvertiert sie mithilfe von IronPDF in ein PDF.

Erweiterte Funktionen

  • Anpassen des PDF-Layouts: IronPDF ermöglicht die CSS-Gestaltung von Layouts, Schriftarten, Farben usw.
  • Kopf- und Fußzeilen: IronPDF unterstützt Kopf- und Fußzeilen, die Seitenzahlen oder Logos enthalten können.

Zusammenfassung und bewährte Praktiken

  • SortedList Übersicht: SortedList ist eine sortierte Schlüssel-Wert-Sammlung, die sich am besten für Szenarien eignet, in denen auf Daten über bestimmte Schlüssel zugegriffen wird und die Sortierung erhalten bleiben muss.
  • Verwendung von IronPDF zum Exportieren: IronPDF ist eine praktische Bibliothek zum Exportieren von SortedList-Daten in PDFs, die benutzerdefinierte Layouts und Stile unterstützt.

Abschluss

In diesem Artikel haben wir die C#-Klasse SortedList untersucht, ein leistungsstarkes Werkzeug zur Verwaltung sortierter Schlüssel-Wert-Datensammlungen. SortedList ist besonders nützlich in Szenarien, in denen die Reihenfolge und der effiziente Zugriff per Schlüssel von entscheidender Bedeutung sind. Von der Erstellung, dem Hinzufügen und Entfernen von Elementen bis hin zur Integration mit IronPDF für den PDF-Export haben wir praktische Schritte und Best Practices für die Verwendung von SortedList in realen Anwendungen behandelt.

Darüber hinaus haben wir gezeigt, wie IronPDF das Exportieren bestimmter Werte aus einer SortedList Datei in das PDF-Format vereinfachen kann und somit die einfache Erstellung professionell gestalteter, gut organisierter Berichte ermöglicht. Die Vielseitigkeit von IronPDF, einschließlich anpassbarer Kopf-, Fußzeilen und CSS-Styling, macht es zu einer ausgezeichneten Wahl für die Erzeugung von PDFs direkt aus Ihren C#-Anwendungen.

Wenn Sie daran interessiert sind, IronPDF auszuprobieren, bietet es eine kostenlose Testversion, die Ihnen ermöglicht, die gesamte Palette der Funktionen ohne Verpflichtung zu erkunden. Diese Testversion ermöglicht das Testen der PDF-Erstellung, Anpassungsoptionen und Integration in bestehende Projekte, um sicherzustellen, dass es Ihren Anforderungen entspricht. Durch die Kombination von SortedList und IronPDF erhalten Entwickler eine robuste und effiziente Lösung für die Verwaltung und Berichterstellung sortierter Daten in C#-Anwendungen.

Häufig gestellte Fragen

Was ist eine C# SortedList und wie funktioniert sie?

Eine C# SortedList ist eine Sammlung von Schlüssel-Wert-Paaren, die die Schlüssel automatisch sortiert. Sie gehört zum System.Collections.Generic-Namespace und ist nützlich für Szenarien, in denen der Zugriff auf sortierte Daten erforderlich ist. Die SortedList hält ihre Ordnung mit einer hybriden Struktur zwischen einem Array und einer Hash-Tabelle, die effizienten schlüsselbasierten Zugriff bietet.

Wie kann ich eine SortedList in C# erstellen?

Sie können eine SortedList in C# erstellen, indem Sie den Standardkonstruktor verwenden oder einen IComparer für benutzerdefinierte Sortierungen übergeben. Ein Beispiel für das Erstellen einer SortedList ist: SortedList sortedList = new SortedList();

Welche Vorteile bietet die Verwendung einer SortedList gegenüber einem Dictionary in C#?

Der Hauptvorteil der Verwendung einer SortedList gegenüber einem Dictionary besteht darin, dass eine SortedList die Schlüssel automatisch sortiert, was von Vorteil ist, wenn Sie sortierte Daten benötigen und hauptsächlich auf sie über den Schlüssel zugreifen. Dies ist besonders in leselastigen Szenarien nützlich.

Wie kann ich Elemente zu einer C# SortedList hinzufügen?

Elemente können zu einer C# SortedList mit der Add-Methode hinzugefügt werden. Diese Methode stellt sicher, dass die Elemente nach Schlüssel sortiert bleiben und die Ordnung der SortedList beibehalten wird.

Kann eine SortedList verwendet werden, um Daten als PDF zu exportieren?

Ja, Sie können IronPDF verwenden, um PDF-Berichte aus SortedList-Daten zu erstellen. Dadurch können Entwickler PDF-Dokumente aus Sammlungen sortierter Schlüssel-Wert-Daten erstellen, was die Integrationsfähigkeiten von IronPDF mit C#-Anwendungen unterstreicht.

Was sind einige gängige Anwendungen einer C# SortedList?

Gängige Anwendungen einer C# SortedList umfassen das Speichern geordneter Listen wie Schülernamen nach Rollennummern oder das Führen sortierter Transaktionsprotokolle. Sie ist besonders nützlich in Anwendungen, in denen Daten in geordneter Reihenfolge abgerufen werden müssen.

Wie verhält sich eine SortedList in Bezug auf Einfüge- und Löschoperationen?

Eine SortedList kann langsamer als ein Dictionary bei Einfüge- und Löschoperationen sein, insbesondere bei großen Datenmengen. Dies liegt an ihrer hybriden Struktur, die effiziente Suchvorgänge und die Beibehaltung der Sortierreihenfolge priorisiert.

Was ist die Standardsortierreihenfolge von Schlüsseln in einer C# SortedList?

Die Standardsortierreihenfolge in einer C# SortedList ist aufsteigend. Sie verwendet das IComparable-Interface, um die Schlüssel automatisch zu sortieren, es sei denn, es wird ein benutzerdefinierter IComparer bereitgestellt.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an