Zum Fußzeileninhalt springen
.NET HILFE

C# Sammlung (Funktionsweise für Entwickler)

C# ist unter den vielen verfügbaren Programmiersprachen eine beliebte und anpassungsfähige Option für Entwickler geworden. Das Konzept der Sammlungen steht im Mittelpunkt der umfangreichen Bibliothek und Frameworks von C#, die einen der Hauptvorteile der Sprache darstellen. In C# ist eine Sammlung wesentlich, um Daten effektiv zu speichern und zu organisieren. Sie bieten Entwicklern eine breite Palette effektiver Werkzeuge, um herausfordernde Programmierprobleme zu lösen. In diesem Beitrag werden wir uns eingehender mit Sammlungen beschäftigen und deren Merkmale, Typen und optimale Verwendungsstrategien behandeln.

Wie man C# Sammlungen verwendet

  1. Erstellen Sie ein neues Konsolen-App-Projekt.
  2. Erstellen Sie ein Objekt für die Sammlung in C#.
  3. Fügen Sie die Werte zur Sammlungsklasse hinzu, die mehrere Objektsätze speichern kann.
  4. Bearbeiten Sie die Wertoperationen wie Hinzufügen, Entfernen, Sortieren usw.
  5. Anzeigen des Ergebnisses und Freigabe des Objekts.

C#: Sammlungen verstehen

Sammlungen in C# sind Container, die Programmierern ermöglichen, mit Sätzen von Objektklassen zu arbeiten und diese zu speichern. Diese Objekte sind flexibel und an unterschiedliche Programmierumgebungen anpassbar und können vom gleichen oder unterschiedlichen Typ sein. Die meisten Sammlungsklassen implementieren Komponenten des System-Namespace in C#, was bedeutet, dass Namespaces wie System.Collections und System.Collections.Generic importiert werden müssen, die verschiedene Sammlungsklassen bieten, sowohl generische als auch nicht-generische. Sammlungen ermöglichen auch die dynamische Speicherzuweisung sowie das Hinzufügen, Suchen und Sortieren von Elementen innerhalb der Sammlungsklassen.

Nicht-generische Sammlungsarten

ArrayList, Hashtable und Queue sind einige der nicht-generischen Sammlungsklassen, die in den ersten Versionen der Sprache enthalten waren. Diese Sammlungen bieten eine Alternative zum expliziten Definieren der Typen von Objekten, die Sie speichern und mit denen Sie arbeiten möchten. Entwickler wählen jedoch häufig generische Sammlungen aufgrund ihrer überlegenen Leistung und Typsicherheit.

Generische Sammlungen

Spätere Versionen von C# führten generische Sammlungen ein, um die Nachteile nicht-generischer Sammlungen zu überwinden. Sie bieten Typsicherheit während der Kompilierung und ermöglichen es Entwicklern, mit streng typisierten Daten umzugehen. Zu den oft verwendeten generischen Sammlungsklassen gehören List, Dictionary<TKey, TValue>, Queue und Stack. Diese Sammlungen sind die erste Wahl in der modernen C#-Entwicklung, da sie eine bessere Leistung und Kompilierungszeit-Typüberprüfung bieten.

Schlüssel C# Sammlungstypen

1. List

Ein dynamisches Array, das eine schnelle und einfache Einfügung und Entfernung von Elementen ermöglicht, ist die Klasse List<T>. Es ist eine flexible Option für Situationen, die eine anpassbare Sammlung erfordern, da sie Möglichkeiten zum Filtern, Suchen und Bearbeiten von Komponenten bietet.

// Creating a list with integers and adding/removing elements
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // Adds element '6' to the end
numbers.Remove(3); // Removes the first occurrence of the element '3'
// Creating a list with integers and adding/removing elements
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6); // Adds element '6' to the end
numbers.Remove(3); // Removes the first occurrence of the element '3'
' Creating a list with integers and adding/removing elements
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Add(6) ' Adds element '6' to the end
numbers.Remove(3) ' Removes the first occurrence of the element '3'
$vbLabelText   $csharpLabel

2. Wörterbuch<TKey, TValue>

Mit schnellen Suchgeschwindigkeiten wird eine Sammlung von Schlüssel-Wert-Paaren durch die Dictionary<TKey, TValue>-Klasse dargestellt. Es wird häufig in Situationen eingesetzt, in denen der schnelle Zugriff auf Daten über einen eindeutigen Schlüsselwert entscheidend ist. Dieser Schlüssel wird verwendet, um auf Elemente im Wörterbuch zuzugreifen.

// Creating a dictionary mapping names to ages
Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); // The string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // Setting the key "Jane" to hold the value 30
// Creating a dictionary mapping names to ages
Dictionary<string, int> ageMap = new Dictionary<string, int>();
ageMap.Add("John", 25); // The string "John" is the key that can access the value 25
ageMap["Jane"] = 30; // Setting the key "Jane" to hold the value 30
' Creating a dictionary mapping names to ages
Dim ageMap As New Dictionary(Of String, Integer)()
ageMap.Add("John", 25) ' The string "John" is the key that can access the value 25
ageMap("Jane") = 30 ' Setting the key "Jane" to hold the value 30
$vbLabelText   $csharpLabel

3. Warteschlange und Stapel

Die First-in, First-out-Kollektion (FIFO) und die Last-in, First-out-Paradigmen werden jeweils von den generischen Klassen Queue<T> und Stack<T> implementiert. Sie können verwendet werden, um Elemente in einer bestimmten Reihenfolge basierend auf den Bedürfnissen der Anwendung zu verwalten.

// Creating and manipulating a queue
Queue<string> tasks = new Queue<string>(); 
tasks.Enqueue("Task 1"); // Adding to the queue
tasks.Enqueue("Task 2");

// Creating and manipulating a stack
Stack<double> numbers = new Stack<double>();
numbers.Push(3.14); // Adding to the stack
numbers.Push(2.71);
// Creating and manipulating a queue
Queue<string> tasks = new Queue<string>(); 
tasks.Enqueue("Task 1"); // Adding to the queue
tasks.Enqueue("Task 2");

// Creating and manipulating a stack
Stack<double> numbers = new Stack<double>();
numbers.Push(3.14); // Adding to the stack
numbers.Push(2.71);
' Creating and manipulating a queue
Dim tasks As New Queue(Of String)()
tasks.Enqueue("Task 1") ' Adding to the queue
tasks.Enqueue("Task 2")

' Creating and manipulating a stack
Dim numbers As New Stack(Of Double)()
numbers.Push(3.14) ' Adding to the stack
numbers.Push(2.71)
$vbLabelText   $csharpLabel

4. HashSet

Einzigartige Elemente, die in einer ungeordneten Sammlung angeordnet sind, werden durch die Klasse HashSet<T> dargestellt. Es bietet effektive Möglichkeiten, Mengenoperationen wie Differenz, Vereinigung und Schnittmenge durchzuführen.

// Creating hashsets and performing a union operation
HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); // Combining setA and setB
// Creating hashsets and performing a union operation
HashSet<int> setA = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> setB = new HashSet<int> { 3, 4, 5, 6 };
HashSet<int> unionSet = new HashSet<int>(setA);
unionSet.UnionWith(setB); // Combining setA and setB
' Creating hashsets and performing a union operation
Dim setA As New HashSet(Of Integer) From {1, 2, 3, 4}
Dim setB As New HashSet(Of Integer) From {3, 4, 5, 6}
Dim unionSet As New HashSet(Of Integer)(setA)
unionSet.UnionWith(setB) ' Combining setA and setB
$vbLabelText   $csharpLabel

IronPDF

C#-Sammlung (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF-Website-Seite

Eine C#-Bibliothek namens IronPDF erleichtert das Erstellen, Bearbeiten und Anzeigen von PDF-Dokumenten in .NET-Anwendungen. Sie bietet viele Lizenzierungsoptionen, plattformübergreifende Kompatibilität, hochwertige Ausgabe und HTML-zu-PDF-Konvertierung. Die benutzerfreundliche API von IronPDF vereinfacht die Handhabung von PDFs und macht es zu einem wertvollen Werkzeug für C#-Entwickler.

Das herausragende Merkmal von IronPDF ist seine HTML-zu-PDF-Konvertierungs-Funktion, die alle Layouts und Stile beibehält. Es generiert PDFs aus Webinhalten und eignet sich perfekt für Berichte, Rechnungen und Dokumentationen. HTML-Dateien, URLs und HTML-Strings können mühelos in PDFs umgewandelt werden.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Zu den Hauptmerkmalen von IronPDF gehören:

  • Konvertieren von HTML in PDF: Mit IronPDF können Programmierer PDF-Dokumente aus HTML-Text erstellen, einschließlich CSS und JavaScript. Dies ist besonders nützlich für diejenigen, die bereits mit Webentwicklungstools vertraut sind und HTML und CSS zur Erstellung von PDFs verwenden möchten.
  • PDF-Erstellung und Bearbeitung: Die Bibliothek bietet die Möglichkeit, PDF-Dokumente von Grund auf programmgesteuert zu erstellen. Darüber hinaus erleichtert sie das Bearbeiten vorhandener PDFs, indem sie Operationen wie Textextraktion, Wasserzeicheneinfügung, Teilung von PDFs und mehr ermöglicht.
  • Überlegene Wiedergabe: IronPDF verwendet eine Rendering-Engine, um PDF-Ausgaben von höchster Qualität zu erzeugen und sicherzustellen, dass die endgültigen Dokumente Klarheit und visuelle Integrität beibehalten.
  • Plattformübergreifende Kompatibilität: IronPDF ist so konzipiert, dass es sowohl mit .NET Core als auch .NET Framework funktioniert, sodass es in verschiedenen Anwendungen und auf einer Vielzahl von Plattformen verwendet werden kann.
  • Leistungsoptimierung: Selbst beim Arbeiten mit großen oder komplizierten PDF-Dokumenten ist die Bibliothek so ausgelegt, dass sie eine effiziente PDF-Erstellung und -Wiedergabe bietet.

Um mehr über die IronPDF-Dokumentation zu erfahren, verweisen Sie auf die IronPDF-Dokumentation.

Installation von IronPDF

Installieren Sie zunächst die IronPDF-Bibliothek mit der Paket-Manager-Konsole oder dem NuGet-Paket-Manager mit:

Install-Package IronPdf

C#-Sammlung (Wie es für Entwickler funktioniert): Abbildung 2 - Installation von IronPDF mit der Paket-Manager-Konsole

Die Suche nach dem Paket "IronPDF" mit dem NuGet-Paket-Manager ist eine weitere Möglichkeit. Wir können aus dieser Liste von allen mit IronPDF verbundenen NuGet-Paketen das erforderliche Paket auswählen und herunterladen.

C#-Sammlung (Wie es für Entwickler funktioniert): Abbildung 3 - Installation von IronPDF mit dem NuGet-Paket-Manager

Dokumentenerstellung mit Collections unter Verwendung von IronPDF

Es ist entscheidend, die Rolle, die Sammlungen in Datenstrukturen und Organisation spielen, zu verstehen, bevor wir uns mit der Schnittstelle zu IronPDF befassen. Entwickler können Gruppierungen von Objekten in einer organisierten Weise speichern, abrufen und ändern, indem sie Sammlungen verwenden. Mit so vielen verschiedenen verfügbaren Typen wie List, Dictionary<TKey, TValue> und HashSet können Entwickler die Sammlung auswählen, die am besten zu ihren Anforderungen passt.

Stellen Sie sich vor, Sie müssen einen Bericht mit einer Liste von Verkaufsabschlüssen erstellen. Die Daten können effektiv mit einer List organisiert werden, die als Grundlage für weitere Verarbeitung und Anzeige dient.

// Define the Transaction class
public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}

// Create a list of transactions
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    // Add more transactions as needed
};
// Define the Transaction class
public class Transaction
{
    public string ProductName { get; set; }
    public decimal Amount { get; set; }
    public DateTime Date { get; set; }
}

// Create a list of transactions
List<Transaction> transactions = new List<Transaction>
{
    new Transaction { ProductName = "Product A", Amount = 100.50m, Date = DateTime.Now.AddDays(-2) },
    new Transaction { ProductName = "Product B", Amount = 75.20m, Date = DateTime.Now.AddDays(-1) },
    // Add more transactions as needed
};
' Define the Transaction class
Public Class Transaction
	Public Property ProductName() As String
	Public Property Amount() As Decimal
	Public Property [Date]() As DateTime
End Class

' Create a list of transactions
Private transactions As New List(Of Transaction) From {
	New Transaction With {
		.ProductName = "Product A",
		.Amount = 100.50D,
		.Date = DateTime.Now.AddDays(-2)
	},
	New Transaction With {
		.ProductName = "Product B",
		.Amount = 75.20D,
		.Date = DateTime.Now.AddDays(-1)
	}
}
$vbLabelText   $csharpLabel

Im PDF erstellen wir eine einfache Tabelle, die den Produktnamen, den Transaktionsbetrag und das Datum für jede auflistet.

using IronPdf;

// Create a PDF document renderer
var pdfDocument = new HtmlToPdf();

// HTML content with a table populated by data from the 'transactions' list
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";

// Convert HTML to PDF
PdfDocument pdf = pdfDocument.RenderHtmlAsPdf(htmlContent);

// Specify the file path to save the PDF
string pdfFilePath = "transactions_report.pdf";
pdf.SaveAs(pdfFilePath);
using IronPdf;

// Create a PDF document renderer
var pdfDocument = new HtmlToPdf();

// HTML content with a table populated by data from the 'transactions' list
string htmlContent = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>";
foreach (var transaction in transactions)
{
    htmlContent += $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>";
}
htmlContent += "</table>";

// Convert HTML to PDF
PdfDocument pdf = pdfDocument.RenderHtmlAsPdf(htmlContent);

// Specify the file path to save the PDF
string pdfFilePath = "transactions_report.pdf";
pdf.SaveAs(pdfFilePath);
Imports IronPdf

' Create a PDF document renderer
Private pdfDocument = New HtmlToPdf()

' HTML content with a table populated by data from the 'transactions' list
Private htmlContent As String = "<table><tr><th>Product Name</th><th>Amount</th><th>Date</th></tr>"
For Each transaction In transactions
	htmlContent &= $"<tr><td>{transaction.ProductName}</td><td>{transaction.Amount}</td><td>{transaction.Date.ToShortDateString()}</td></tr>"
Next transaction
htmlContent &= "</table>"

' Convert HTML to PDF
Dim pdf As PdfDocument = pdfDocument.RenderHtmlAsPdf(htmlContent)

' Specify the file path to save the PDF
Dim pdfFilePath As String = "transactions_report.pdf"
pdf.SaveAs(pdfFilePath)
$vbLabelText   $csharpLabel

Entwickler haben die Möglichkeit, das PDF-Dokument auf der Festplatte zu speichern oder es den Benutzern anzuzeigen, sobald es erstellt wurde. IronPDF bietet mehrere Ausgabemöglichkeiten, darunter Browser-Streaming, Dateispeicherung und Cloud-Speicherintegration.

C#-Sammlung (Wie es für Entwickler funktioniert): Abbildung 4 - Ausgegebene PDF aus dem obigen Code

Der obige Bildschirm zeigt die Ausgabe, die aus dem obigen Code generiert wurde. Um mehr über den Code zu erfahren, verweisen Sie auf HTML zur Erstellung eines PDF-Beispiels verwenden.

Abschluss

Eine Fülle von Möglichkeiten für dynamische Dokumenterstellung wird durch die Kombination von Sammlungen mit IronPDF ermöglicht. Entwickler können Daten effektiv verwalten und organisieren, indem sie Sammlungen nutzen, und IronPDF erleichtert die Erstellung visuell ansprechender PDF-Dokumente. Die kombinierte Leistung von IronPDF und Sammlungen bietet eine zuverlässige und anpassungsfähige Lösung für die dynamische Inhaltserstellung in C#-Anwendungen, unabhängig von der Art des zu erstellenden Dokuments – Rechnungen, Berichte oder alles andere.

Die $799-Lite-Edition von IronPDF umfasst ein Jahr Software-Support, Upgrade-Optionen und eine permanente Lizenz. Benutzer bekommen auch die Möglichkeit, das Produkt in realen Bedingungen während der mit Wasserzeichen versehenen Testperiode zu bewerten. Um mehr über die Kosten, Lizenzierung und die kostenlose Testversion von IronPDF zu erfahren, besuchen Sie bitte die IronPDF-Lizenzierungsinformationen. Für weitere Informationen über Iron Software besuchen Sie die Iron Software-Website.

Häufig gestellte Fragen

Was sind Sammlungen in C# und warum sind sie wichtig?

Sammlungen in C# sind entscheidend für die Datenspeicherung und -organisation und bieten Entwicklern Werkzeuge, um komplexe Programmierherausforderungen effizient zu bewältigen. Sie ermöglichen dynamische Speicherallokation und einfache Manipulation von Datenmengen.

Was sind die Unterschiede zwischen nicht-generischen und generischen Sammlungen in C#?

Nicht-generische Sammlungen, wie ArrayList oder Hashtable, sind weniger typensicher und können jeden Objekttyp speichern. Generische Sammlungen, wie List oder Dictionary, bieten Typensicherheit und verbesserte Leistung, indem sie die Konsistenz des Datentyps durchsetzen.

Wie erstellt man eine generische Liste in C#?

Eine generische Liste in C# kann mit der List-Klasse erstellt werden. Zum Beispiel kann eine Liste von Ganzzahlen mit List numbers = new List { 1, 2, 3 }; erstellt werden.

Wie kann ich HTML in PDF in C# konvertieren?

Sie können die RenderHtmlAsPdf-Methode von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Es unterstützt auch die Konvertierung von HTML-Dateien und URLs in PDF-Dokumente unter Beibehaltung der Layout- und Stilintegrität.

Was sind einige bewährte Praktiken für die Verwendung von Sammlungen in C#?

Zu den bewährten Praktiken für die Verwendung von Sammlungen in C# gehört die Auswahl des richtigen Sammlungstyps für Ihre Bedürfnisse, wie z.B. die Verwendung von Dictionary für Schlüssel-Wert-Paare und List für geordnete Listen, sowie die Sicherstellung eines ordnungsgemäßen Speichermanagements, indem Sammlungen entsorgt werden, wenn sie nicht mehr benötigt werden.

Wie können Sammlungen die PDF-Erstellung in C#-Anwendungen verbessern?

Sammlungen können Daten effizient für die Dokumentenerstellung organisieren. Zum Beispiel kann die Verwendung einer List zur Erstellung von Verkaufsdaten die Erstellung umfassender PDF-Berichte mit IronPDF erleichtern, wodurch das Datenmanagement und die Präsentation optimiert werden.

Welche Lizenzoptionen gibt es für IronPDF?

IronPDF bietet eine Lite-Lizenz mit einem Jahr Support und Updates sowie eine mit Wasserzeichen versehene Testversion zur Bewertung. Diese Optionen ermöglichen es Entwicklern, die Fähigkeiten von IronPDF in ihren Projekten zu testen und zu implementieren.

Wie kann ich IronPDF in ein .NET-Projekt installieren?

Sie können IronPDF in einem .NET-Projekt mithilfe des NuGet-Paketmanagers mit dem Befehl Install-Package IronPdf installieren. Alternativ können Sie im NuGet-Paketmanager nach 'IronPDF' suchen, um es Ihrem Projekt hinzuzufügen.

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