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)
Chipego Kalinda
18. Februar 2024
Teilen Sie:
Einführung
Das sprachintegrierte Abfragefeature (LINQ) in C# ermöglicht es Programmierern, klare und ausdrucksstarke Abfragen für eine Vielzahl von Datenquellen zu erstellen. Dieser Beitrag wird die Verwendung von IronPDF besprechen, einer vielseitigen C#-Bibliothek zur Arbeit mit PDF-Dokumenten, unter Verwendung der Distinct-Funktion von LINQ. 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.
Wie man die C# LINQ Distinct-Methode verwendet
Erstellen Sie ein neues Konsolenprojekt.
Importieren Sie den Namespace System.Linq.
Erstellen Sie eine Liste mit mehreren Einträgen.
Rufen Sie die Methode Distinct() von der Liste auf.
Ermittelt die eindeutigen Werte und zeigt das Ergebnis auf der Konsole an.
Beseitigen Sie alle erstellten Objekte.
Was ist LINQ?
Entwickler können mit der LINQ-Funktion (Language Integrated Query) von C# klare und ausdrucksstarke Abfragen zur Datenmanipulation direkt in ihrem Code erstellen. 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 erstellen, um nach einem bestimmten Attribut zu unterscheiden, oder Sie können die DistinctBy-Erweiterungsmethode von Drittanbieterbibliotheken (wie More LINQ) nutzen.
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 .NET-Bibliothek IronPDF Website PDF-Dokumente in der C#-Sprache erstellen, bearbeiten und ändern. 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. Um mehr über IronPDF zu erfahren, beachten Sie bitte die IronPDF-Dokumentation.
Die Hauptfunktion von IronPDF ist die HTML-zu-PDF-Konvertierung, die Ihre Layouts und Stile unverändert beibehält. 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.
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.
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS C# Intern (Wie es für Entwickler funktioniert)
NÄCHSTES > C# Prioritäts-Warteschlange (So funktioniert es für Entwickler)