Zum Fußzeileninhalt springen
ENTWICKLER-UPDATES

C# SortedList (Wie es für Entwickler funktioniert)

Einführung in die C# SortedList

Was ist eine SortedList?

Die C# SortedList Klasse ist eine Sammlung von Schlüssel-Wert-Paaren, ähnlich wie ein Wörterbuch, aber mit dem zusätzlichen Vorteil der automatischen Sortierung nach Schlüsseln. Sie ist Teil des System.Collections.Generic Namespace und für Szenarien konzipiert, in denen Sie schnellen Zugriff auf sortierte Daten benötigen. SortedList<TKey, TValue> ist ideal, wenn Sie Daten in einer bestimmten Reihenfolge halten und Elemente effizient nach Schlüssel 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 hält verbundene Werte standardmäßig in aufsteigender Reihenfolge nach Schlüssel sortiert.
  • 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 ein Hybrid zwischen einem Array und einer 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. Einfüge- und Löschoperationen können jedoch langsamer sein als bei einer Dictionary.

Sortiermechanismus

Standardmäßig sortiert SortedList<TKey, TValue> Schlüssel in aufsteigender Reihenfolge mit dem IComparable Interface, das sicherstellt, dass Zeichenfolgenschlü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 der C# SortedList

Erstellen einer SortedList

Sie können ein SortedList in C# entweder mit dem Standardkonstruktor oder durch Übergabe eines IComparer erstellen, falls eine benutzerdefinierte Sortierung erforderlich ist. Das SortedList hat eine standardmäßige Anfangskapazität von 16, die für Leistungsverbesserungen 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 mit der Add Methode zu SortedList 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

Zugriff auf Elemente in einem SortedList durch ihre Schlüssel. 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 mit bestimmten Schlüsseln mithilfe der Remove Methode oder verwenden Sie den angegebenen Index mit RemoveAt. Beide erlauben die kontrollierte Löschung 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 sortierteListe

Durchlaufen Sie 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 (Wie sie für Entwickler funktioniert): 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. bei der Anzeige von sortierten Transaktionsprotokollen oder Ranglisten.

Bewährte Verfahren:

  • Verwenden Sie SortedList, wenn Schlüssel der primäre Zugriffspunkt sind und sortiert bleiben müssen.
  • Für häufige Einfügungen sollten Sie Alternativen wie SortedDictionary in Erwägung ziehen, um die Leistung zu verbessern.

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 (Wie sie für Entwickler funktioniert): 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 Ihr 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 (Wie sie für Entwickler funktioniert): 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# SortedList Klasse erforscht, ein leistungsstarkes Werkzeug zur Verwaltung sortierter Schlüssel-Wert-Datensammlungen. SortedList ist besonders nützlich in Szenarien, in denen Ordnung und effizienter Zugriff nach Schlüssel entscheidend 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 bewährte Verfahren zur Verwendung von SortedList in realen Anwendungen behandelt.

Zusätzlich haben wir gezeigt, wie IronPDF die Aufgabe des Exports bestimmter Werte aus einem SortedList in das PDF-Format vereinfachen kann, um die einfache Erstellung professioneller, gut organisierter Berichte zu ermöglichen. 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, effiziente Lösung zur Verwaltung und Berichterstattung 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