Erstellen Sie eine PDF-Datei mit LINQ Distinct. Sehen Sie sich die Ergebnisse in Aktion an!
using System;
using System.Collections.Generic;
using System.Linq;
using IronPdf;
class Program
{
static void Main()
{
// Sample data with duplicates
List<string> names = new List<string>
{
"Alice",
"Bob",
"Alice",
"Charlie",
"Bob",
"Eve"
};
// Using LINQ to get distinct names
var distinctNames = names.Distinct();
// Create a new IronPdf.HtmlToPdf Renderer
var Renderer = new ChromePdfRenderer();
// Build the HTML content with distinct names
string htmlContent = "<h1>Unique Names List</h1><ul>";
foreach (var name in distinctNames)
{
htmlContent += $"<li>{name}</li>";
}
htmlContent += "</ul>";
// Render the HTML to a PDF file
var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
string outputPath = "UniqueNamesList.pdf";
pdfDocument.SaveAs(outputPath);
Console.WriteLine($"PDF created successfully at {outputPath}");
}
}
C# LINQ Distinct (Wie es für Entwickler funktioniert)
Kannapat Udonpant
18. Februar 2024
Teilen Sie:
Einführung
Sprachintegrierte Abfrage(LINQ), eine leistungsstarke Sprachfunktion in C#, ermöglicht es Programmierern, klare, aussagekräftige Suchen für eine Vielzahl von Datenquellen zu erstellen. In diesem Beitrag wird die Verwendung vonIronPDFeine vielseitige C#-Bibliothek für die Arbeit mit PDF-Dokumenten, dieLINQ ist unverwechselbar funktion. Wir werden zeigen, wie diese Kombination den Prozess der Erstellung einzigartiger Papiere aus einer Sammlung erleichtern kann. In diesem Artikel werden wir die C# LINQ distinct-Funktion mit IronPDF kennenlernen.
Verwendung von C# LINQ Distinct Method
Erstellen Sie ein neues Konsolenprojekt.
Namespace "System.Linq" importieren.
Erstellen Sie eine Liste mit mehreren Einträgen.
Aufruf der Methode Distinct() von der Liste.
Ermittelt die eindeutigen Werte und zeigt das Ergebnis auf der Konsole an.
Beseitigen Sie alle erstellten Objekte.
Was ist LINQ?
Entwickler können mit LINQ von C# klare und aussagekräftige Abfragen zur Datenbearbeitung direkt in ihrem Code erstellen(Sprache Integrierte Abfrage) funktion. LINQ, das erstmals im .NET Framework 3.5 enthalten war, bietet eine Standardsyntax für die Abfrage einer Reihe von Datenquellen, einschließlich Datenbanken und Sammlungen. LINQ erleichtert einfache Aufgaben wie Filterung und Projektion durch Operatoren wie Where und Select, was die Lesbarkeit des Codes verbessert. Diese Funktion ist für C#-Entwickler von entscheidender Bedeutung, da sie eine verzögerte Ausführung für optimale Geschwindigkeit ermöglicht, um sicherzustellen, dass Datenmanipulationsoperationen analog zu SQL schnell und natürlich abgeschlossen werden.
Verstehen von LINQ Distinct
Doppelte Elemente können mit der Funktion Distinct von LINQ aus einer Sammlung oder Sequenz entfernt werden. Wenn kein benutzerdefinierter Gleichheitsvergleicher vorhanden ist, werden die Elemente mit ihrem Standardvergleicher verglichen. Dies macht es zu einer großartigen Option in Situationen, in denen Sie mit einer einzigartigen Sammlung arbeiten und doppelte Komponenten entfernen müssen. Die Distinct-Technik verwendet den Standard-Gleichheitsvergleich zur Bewertung von Werten. Es wird false für die bestimmte Eigenschaft zurückgeben, die dupliziert ist, auf der Grundlage, dass es einzigartige Elemente anzeigen wird.
Grundlegende Verwendung
Am einfachsten ist es, die Methode Distinct direkt auf eine Sammlung anzuwenden, um unterschiedliche Elemente zu erhalten.
var distinctNumbers = numbers.Distinct();
var distinctNumbers = numbers.Distinct();
Dim distinctNumbers = numbers.Distinct()
$vbLabelText $csharpLabel
Benutzerdefinierter Gleichheitsvergleicher
Sie können einen eigenen Gleichheitsvergleich definieren, indem Sie eine Überladung der Funktion Distinct verwenden. Dies ist hilfreich, wenn Sie Artikel nach bestimmten Normen vergleichen möchten. Bitte beachten Sie das folgende Beispiel:
var distinctPeople = people.Distinct(new PersonEqualityComparer());
var distinctPeople = people.Distinct(new PersonEqualityComparer());
Dim distinctPeople = people.Distinct(New PersonEqualityComparer())
$vbLabelText $csharpLabel
Verwendung von Distinct mit Werttypen
Sie müssen keinen benutzerdefinierten Gleichheitsvergleich durchführen, wenn Sie die Methode Distinct mit Werttypen verwenden.
var distinctIntegers = integers.Distinct();
var distinctIntegers = integers.Distinct();
Dim distinctIntegers = integers.Distinct()
$vbLabelText $csharpLabel
Verwendung von Distinct mit anonymen Typen
Distinct kann mit anonymen Typen verwendet werden, um Duplikate auf der Grundlage bestimmter Attribute zu entfernen. Bitte beachten Sie das folgende Beispiel:
var distinctPeople = people
.Select(p => new { p.FirstName, p.LastName })
.Distinct();
var distinctPeople = people
.Select(p => new { p.FirstName, p.LastName })
.Distinct();
Dim distinctPeople = people.Select(Function(p) New With {
Key p.FirstName,
Key p.LastName
}).Distinct()
$vbLabelText $csharpLabel
Unterscheidbar durch eine bestimmte Eigenschaft
Wenn Sie mit Objekten arbeiten, können Sie entweder Ihre eigene Logik für die Unterscheidung nach einem bestimmten Attribut erstellen, oder Sie können die Erweiterungsmethode DistinctBy aus Bibliotheken von Drittanbietern verwenden(wie Mehr LINQ).
var distinctPeople = people.DistinctBy(p => p.Id);
var distinctPeople = people.DistinctBy(p => p.Id);
Dim distinctPeople = people.DistinctBy(Function(p) p.Id)
$vbLabelText $csharpLabel
IronPDF
Programmierer können mit Hilfe der C#-Sprache und der .NET-Bibliothek PDF-Dokumente erstellen, bearbeiten und verändernIronPDF-Website. Das Programm bietet eine Reihe von Werkzeugen und Funktionen für verschiedene Aufgaben im Zusammenhang mit PDF-Dateien, z. B. die Erstellung von PDFs aus HTML, die Konvertierung von HTML in PDF, das Zusammenführen oder Teilen von PDF-Dokumenten und das Hinzufügen von Text, Bildern und Anmerkungen zu bereits vorhandenen PDFs. Wenn Sie mehr über IronPDF erfahren möchten, lesen Sie bitte derenIronPDF-Dokumentation.
Die Hauptmerkmale von IronPDF sindHTML zu PDF Konvertierung, wodurch Ihre Layouts und Stile intakt bleiben. Sie können PDF-Dateien aus Webinhalten generieren, die sich perfekt für Berichte, Rechnungen und Dokumentationen eignen. Es unterstützt die Umwandlung von HTML-Dateien, URLs und HTML-Strings in PDF-Dateien.
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
Merkmale von IronPDF
HTML in PDF konvertieren: Mit IronPDF können Sie jede Art von HTML-Daten - einschließlich Dateien, URLs und HTML-Code-Strings - in PDF-Dokumente umwandeln.
PDF-Erzeugung: Text, Bilder und andere Elemente können mithilfe der Programmiersprache C# programmgesteuert zu PDF-Dokumenten hinzugefügt werden.
PDF-Bearbeitung: IronPDF kann eine PDF-Datei in mehrere Dateien aufteilen, mehrere PDF-Dokumente in einer Datei zusammenführen und bereits vorhandene PDFs bearbeiten.
PDF-Formulare: Da die Bibliothek es den Benutzern ermöglicht, PDF-Formulare zu erstellen und auszufüllen, ist sie in Szenarien nützlich, in denen Formulardaten gesammelt und verarbeitet werden müssen.
Sicherheitsfunktionen: IronPDF kann zum Verschlüsseln von PDF-Dokumenten und zum Schutz von Passwörtern und Berechtigungen verwendet werden.
Extraktion von Text: Text aus PDF-Dateien kann mit IronPDF extrahiert werden.
IronPDF installieren
Holen Sie sich die IronPDF-Bibliothek; er wird für den künftigen Patch benötigt. Geben Sie den folgenden Code in die NuGet Package Manager Console ein, um dies zu erreichen:
Install-Package IronPdf
Eine weitere Möglichkeit besteht darin, mit dem NuGet Package Manager nach dem Paket "IronPDF" zu suchen. Aus dieser Liste können wir das benötigte Paket aus allen mit IronPDF verbundenen NuGet-Paketen auswählen und herunterladen.
LINQ mit IronPDF
Stellen Sie sich eine Situation vor, in der Sie eine Reihe von Daten haben und verschiedene PDF-Dokumente entsprechend den verschiedenen Werten in dieser Reihe erstellen möchten. Hier zeigt sich die Nützlichkeit von LINQ's Distinct, insbesondere bei der Verwendung mit IronPDF zur schnellen Erstellung von Dokumenten.
Erzeugen eindeutiger PDFs mit LINQ und IronPDF
using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;
public class DocumentGenerator
{
public string result {get;set;}
public int id {get;set;}
public static void Main()
{
// Sample data representing categories
List<string> categories = new List<string>
{
"Technology",
"Business",
"Health",
"Technology",
"Science",
"Business",
"Health"
};
// Use LINQ Distinct to filter out duplicate values
// distinct query syntax
var distinctCategories = categories.Distinct();
// Generate a distinct elements PDF document for each category
foreach (var category in distinctCategories)
{
GeneratePdfDocument(category);
}
}
private static void GeneratePdfDocument(string category)
{
// Create a new PDF document using IronPDF
IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf();
PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>");
// Save the PDF to a file
string pdfFilePath = $"{category}_Report.pdf";
pdf.SaveAs(pdfFilePath);
// Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}");
}
}
using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;
public class DocumentGenerator
{
public string result {get;set;}
public int id {get;set;}
public static void Main()
{
// Sample data representing categories
List<string> categories = new List<string>
{
"Technology",
"Business",
"Health",
"Technology",
"Science",
"Business",
"Health"
};
// Use LINQ Distinct to filter out duplicate values
// distinct query syntax
var distinctCategories = categories.Distinct();
// Generate a distinct elements PDF document for each category
foreach (var category in distinctCategories)
{
GeneratePdfDocument(category);
}
}
private static void GeneratePdfDocument(string category)
{
// Create a new PDF document using IronPDF
IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf();
PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>");
// Save the PDF to a file
string pdfFilePath = $"{category}_Report.pdf";
pdf.SaveAs(pdfFilePath);
// Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.Linq
Public Class DocumentGenerator
Public Property result() As String
Public Property id() As Integer
Public Shared Sub Main()
' Sample data representing categories
Dim categories As New List(Of String) From {"Technology", "Business", "Health", "Technology", "Science", "Business", "Health"}
' Use LINQ Distinct to filter out duplicate values
' distinct query syntax
Dim distinctCategories = categories.Distinct()
' Generate a distinct elements PDF document for each category
For Each category In distinctCategories
GeneratePdfDocument(category)
Next category
End Sub
Private Shared Sub GeneratePdfDocument(ByVal category As String)
' Create a new PDF document using IronPDF
Dim renderer As New IronPdf.HtmlToPdf()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>")
' Save the PDF to a file
Dim pdfFilePath As String = $"{category}_Report.pdf"
pdf.SaveAs(pdfFilePath)
' Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}")
End Sub
End Class
$vbLabelText $csharpLabel
In diesem Beispiel wird eine Reihe eindeutiger Kategorien mithilfe der Methode Distinct für die Kategoriensammlung erstellt. Sie hilft uns, doppelte Elemente aus einer Sequenz zu entfernen. Anschließend wird IronPDF verwendet, um ein PDF-Dokument mit eindeutigen Elementen zu erstellen. Diese Methode gewährleistet, dass nur für eindeutige Kategorien separate PDF-Dokumente erstellt werden.
Konsole OUTPUT
Generierte PDF-Ausgabe
Weitere Informationen über das IronPDF-Codebeispiel für die Erzeugung von PDFs mit HTML finden Sie in derIronPDF HTML zu PDF Beispielcode.
Schlussfolgerung
Die LINQ-Erweiterungsmethode Distinct bietet in Verbindung mit IronPDF einen robusten und effizienten Mechanismus zur Erstellung eindeutiger PDF-Dokumente auf der Grundlage von Werten. Diese Methode rationalisiert den Code und garantiert eine effektive Dokumentenerstellung, egal ob Sie mit Kategorien, Tags oder anderen Daten arbeiten, für die separate Dokumente benötigt werden.
Sie können eine zuverlässige und aussagekräftige Lösung für die Verwaltung verschiedener Aspekte Ihrer C#-Anwendungen entwickeln, indem Sie LINQ für die Datenverarbeitung und IronPDF für die Dokumentenerstellung verwenden. Wenn Sie diese Strategien für Ihre Projekte verwenden, sollten Sie die besonderen Anforderungen Ihrer Anwendung im Auge behalten und die Implementierung so anpassen, dass ein Maximum an Zuverlässigkeit und Leistung erreicht wird.
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS C# Intern (Wie es für Entwickler funktioniert)
NÄCHSTES > C# Prioritäts-Warteschlange (So funktioniert es für Entwickler)