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# SortedList-Klasse ist eine Sammlung von Schlüssel-Wert-Paaren, ähnlich einem Wörterbuch, jedoch mit dem zusätzlichen Vorteil der automatischen Sortierung nach Schlüsseln. Sie ist Teil des System.Collections.Generic-Namespaces und wurde für Szenarien entwickelt, in denen Sie schnellen Zugriff auf sortierte Daten benötigen. SortedList<TKey, TValue> ist ideal, wenn Sie Daten in einer bestimmten Reihenfolge beibehalten 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 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 ein Hybrid aus 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öschvorgänge können jedoch langsamer sein als in einem Dictionary.

Sortiermechanismus

Standardmäßig sortiert SortedList<TKey, TValue> Schlüssel in aufsteigender Reihenfolge mithilfe der IComparable-Schnittstelle, die sicherstellt, dass Zeichenfolgenschlüssel und andere Typen ein standardmäßiges Vergleichsverhalten 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 bei Dictionary , 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 eine SortedList in C# entweder mit dem Standardkonstruktor oder durch Übergeben eines IComparer, wenn benutzerdefinierte Sortierung erforderlich ist, erstellen. Die 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>();
$vbLabelText   $csharpLabel

Einzelteile hinzufügen

Fügen Sie der SortedList Schlüssel-Wert-Paare mit der Add-Methode 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");
$vbLabelText   $csharpLabel

Zugriff auf und Änderung von Elementen

Greifen Sie auf Elemente in einer 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"
$vbLabelText   $csharpLabel

Elemente entfernen

Entfernen Sie Elemente mit spezifischen Schlüsseln mit der Remove-Methode oder mit dem angegebenen Index mit RemoveAt. Beide ermöglichen eine kontrollierte Löschung von Objekten aus der 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
$vbLabelText   $csharpLabel

Iterieren über eine sortierteListe

Iterieren Sie ü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}");
}
$vbLabelText   $csharpLabel

C# Sorted List (Wie es 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 SortedList in komplexeren Szenarien, wie z. B. der Anzeige sortierter Transaktionsprotokolle oder Ranglistenwerte.

Bewährte Verfahren:

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

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# Sorted List (Wie es 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.

Zuerst richten Sie Ihre 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" }
};
$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");
$vbLabelText   $csharpLabel

C# Sorted List (Wie es 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 erkundet, ein leistungsfähiges Werkzeug zur Verwaltung sortierter, schlüsselwertig organisierter Datensammlungen. SortedList ist besonders nützlich in Szenarien, in denen Reihenfolge und effizienter Zugriff nach Schlüssel kritisch sind. Von der Erstellung, dem Hinzufügen und Entfernen von Elementen bis hin zur Integration mit IronPDF zum PDF-Export haben wir praktische Schritte und Best Practices zur Verwendung von SortedList in realen Anwendungen behandelt.

Zusätzlich haben wir gezeigt, wie IronPDF die Aufgabe des Exports spezifischer Werte aus einem SortedList in das PDF-Format vereinfachen kann, was die einfache Erstellung professioneller, 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, effiziente Lösung für das Verwalten und Berichten 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 führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen