.NET-HILFE

C# LINQ Distinct (Wie es für Entwickler funktioniert)

Veröffentlicht 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 von IronPDF, eine flexible C#-Bibliothek für die Arbeit mit PDF-Dokumenten, die LINQ 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.

Wie verwendet man C# LINQ distinct Methode

  1. Erstellen Sie ein neues Konsolenprojekt.

  2. Namespace "System.Linq" importieren.

  3. Erstellen Sie eine Liste mit mehreren Einträgen.

  4. Aufruf der Methode Distinct() von der Liste.

  5. Ermittelt die eindeutigen Werte und zeigt das Ergebnis auf der Konsole an.

  6. 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 in das .NET-Framework 3.5 aufgenommen wurde, 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()
VB   C#

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 sehen Sie sich das folgende Beispiel an:

var distinctPeople = people.Distinct(new PersonEqualityComparer());
var distinctPeople = people.Distinct(new PersonEqualityComparer());
Dim distinctPeople = people.Distinct(New PersonEqualityComparer())
VB   C#

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()
VB   C#

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()
VB   C#

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)
VB   C#

IronPDF

Programmierer können mit Hilfe der C#-Sprache und der .NET-Bibliothek PDF-Dokumente erstellen, bearbeiten und verändern IronPDF. 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 deren dokumentationsseite.

Die Hauptmerkmale von IronPDF sind HTML zu PDF, 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
VB   C#

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

C# LINQ Unterscheidbar (So funktioniert es für Entwickler): Abbildung 1 - Um die IronPDF-Bibliothek über die NuGet Package Manager Console zu installieren, geben Sie den folgenden Befehl ein: "Install IronPDF" oder "dotnet add 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.

C# LINQ Unterscheidbar (Wie es für Entwickler funktioniert): Abbildung 2 - Um die IronPDF-Bibliothek mit dem NuGet Package Manager zu installieren, suchen Sie auf der Registerkarte Durchsuchen nach dem Paket "ironpdf" und wählen Sie die neueste Version des IronPDF-Pakets zum Herunterladen und Installieren in Ihrem Projekt aus.

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
VB   C#

In diesem Beispiel wird eine Reihe von unterschiedlichen Kategorien durch die Verwendung der Methode Distinct für die Kategoriensammlung erhalten. 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

C# LINQ Unterscheidbar (Wie es für Entwickler funktioniert): Abbildung 3 - Konsolenausgabe

Generierte PDF-Ausgabe

C# LINQ Unterscheidbar (Wie es für Entwickler funktioniert): Abbildung 4 - PDF-Ausgabe: Technologie-Bericht

Weitere Informationen über das IronPDF-Codebeispiel für die Erzeugung von PDFs mit HTML finden Sie unter hier.

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.

< PREVIOUS
C# Intern (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Prioritäts-Warteschlange (So funktioniert es für Entwickler)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >