AIDE .NET

C# LINQ Distinct (Comment ça marche pour les développeurs)

Publié février 18, 2024
Partager:

Introduction

Requête intégrée à la langue (LINQ)une fonctionnalité puissante du langage C#, permet aux programmeurs de créer des recherches claires et expressives pour une variété de sources de données. Ce billet traite de l'utilisation de IronPDF, une bibliothèque C# flexible pour travailler avec des documents PDF, en utilisant La spécificité de LINQ fonction. Nous montrerons comment cette combinaison peut faciliter le processus de création de documents uniques à partir d'une collection. Dans cet article, nous allons découvrir la fonction distincte LINQ en C# avec IronPDF.

Comment utiliser C&num ; méthode distincte de LINQ

  1. Créez un nouveau projet de console.
  2. Importer l'espace de noms System.Linq.
  3. Créer une liste avec plusieurs éléments.
  4. Appeler la méthode Distinct() de la liste.
  5. Obtenir les valeurs uniques et afficher le résultat sur la console.
  6. Disposer de tous les objets créés.

Qu'est-ce que LINQ ?

Les développeurs peuvent élaborer des requêtes claires et expressives pour la manipulation des données directement dans leur code grâce à la fonction LINQ de C# (Langue Requête intégrée) caractéristiques. LINQ, qui a été inclus pour la première fois dans le Framework .NET 3.5, offre une syntaxe standard pour l'interrogation d'une série de sources de données, y compris les bases de données et les collections. LINQ facilite les tâches simples telles que le filtrage et la projection en utilisant des opérateurs tels que Where et Select, ce qui améliore la lisibilité du code. Parce qu'elle permet de différer l'exécution pour une vitesse optimale, cette fonctionnalité est cruciale pour les développeurs C# afin de s'assurer que les opérations de manipulation de données sont effectuées rapidement et naturellement d'une manière analogue à SQL.

Comprendre LINQ Distinct

Les éléments en double peuvent être supprimés d'une collection ou d'une séquence à l'aide de la fonction Distinct de LINQ. En l'absence de comparateur d'égalité personnalisé, il compare les éléments à l'aide de leur comparateur par défaut. Il s'agit donc d'une excellente option dans les situations où vous devez travailler avec une collection unique et supprimer les composants en double. La technique Distinct utilise la comparaison d'égalité par défaut pour évaluer les valeurs. Il renverra false pour la propriété particulière qui est dupliquée, en fonction de quoi il affichera des éléments uniques.

Utilisation de base

Pour obtenir des éléments distincts, le plus simple est d'utiliser la méthode Distinct directement sur une collection.

var distinctNumbers = numbers.Distinct();
var distinctNumbers = numbers.Distinct();
Dim distinctNumbers = numbers.Distinct()
VB   C#

Comparateur d'égalité personnalisé

Vous pouvez définir une comparaison d'égalité personnalisée en utilisant une surcharge de la fonction Distinct. Cette fonction est utile si vous souhaitez comparer des articles selon des normes particulières. Veuillez consulter l'exemple suivant :

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

Utilisation de la distinction avec les types de valeurs

Il n'est pas nécessaire de fournir une comparaison d'égalité personnalisée lorsque vous utilisez la méthode Distinct avec des types de valeurs.

var distinctIntegers = integers.Distinct();
var distinctIntegers = integers.Distinct();
Dim distinctIntegers = integers.Distinct()
VB   C#

Utilisation de la distinction avec les types anonymes

Distinct peut être utilisé avec des types anonymes pour supprimer les doublons sur la base d'attributs particuliers. Veuillez vous référer à l'exemple suivant :

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#

Distinction par une propriété spécifique

Lorsque vous travaillez avec des objets, vous pouvez soit créer votre propre logique de distinction par un certain attribut, soit utiliser la méthode d'extension DistinctBy des bibliothèques tierces (comme Plus de 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

Les programmeurs peuvent créer, éditer et modifier des documents PDF en utilisant le langage C# à l'aide de la bibliothèque .NET IronPDF. Le programme fournit une gamme d'outils et de fonctionnalités permettant d'effectuer diverses tâches impliquant des fichiers PDF, telles que la génération de PDF à partir de HTML, la conversion de HTML en PDF, la fusion ou la division de documents PDF, et l'ajout de texte, d'images et d'annotations à des PDF déjà existants. Pour en savoir plus sur IronPDF, veuillez vous référer à son site web page de documentation.

La principale caractéristique d'IronPDF est la suivante HTML à PDFce qui permet de conserver intactes vos mises en page et vos styles. Vous pouvez générer des PDF à partir de contenus web, ce qui est idéal pour les rapports, les factures et la documentation. Il permet de convertir des fichiers HTML, des URL et des chaînes HTML en fichiers 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");
    }
}
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#

Fonctionnalité d'IronPDF

  • Convertir HTML en PDF : Vous pouvez utiliser IronPDF pour convertir n'importe quel type de données HTML - y compris des fichiers, des URL et des chaînes de code HTML - en documents PDF.
  • Génération de PDF : Du texte, des images et d'autres éléments peuvent être ajoutés par programmation aux documents PDF à l'aide du langage de programmation C#.
  • Manipulation de PDF : IronPDF peut diviser un fichier PDF en plusieurs fichiers, fusionner plusieurs documents PDF en un seul fichier et modifier des PDF déjà existants.
  • Formulaires PDF : Comme la bibliothèque permet aux utilisateurs de créer et de remplir des formulaires PDF, elle est utile dans les scénarios où les données des formulaires doivent être collectées et traitées.
  • Caractéristiques de sécurité : IronPDF peut être utilisé pour crypter les documents PDF et fournir une protection par mot de passe et par autorisation.
  • Extraction de texte : Le texte des fichiers PDF peut être extrait à l'aide d'IronPDF.

Installer IronPDF

Obtenir la bibliothèque IronPDF ; c'est nécessaire pour le futur patch. Pour ce faire, saisissez le code suivant dans la console du gestionnaire de paquets NuGet :

Install-Package IronPdf

C# LINQ Distinct (Comment cela fonctionne-t-il pour les développeurs ?) : Figure 1 - Pour installer la bibliothèque IronPDF à l'aide de la console NuGet Package Manager, entrez la commande suivante : "Install IronPDF" ; ou "dotnet add package IronPdf" ;

L'utilisation du gestionnaire de paquets NuGet pour rechercher le paquetage "IronPDF" est une option supplémentaire. Nous pouvons choisir et télécharger le paquet nécessaire à partir de cette liste parmi tous les paquets NuGet associés à IronPDF.

C# LINQ Distinct (Comment cela fonctionne-t-il pour les développeurs ?) : Figure 2 - Pour installer la bibliothèque IronPDF à l'aide du gestionnaire de paquets NuGet, recherchez le paquet "ironpdf" ; dans l'onglet Browse et choisissez la dernière version du paquet IronPDF à télécharger et à installer dans votre projet.

LINQ avec IronPDF

Considérons une situation dans laquelle vous disposez d'un ensemble de données et vous souhaitez créer plusieurs documents PDF en fonction des différentes valeurs de cet ensemble. C'est là que l'utilité de LINQ's Distinct brille, en particulier lorsqu'il est utilisé avec IronPDF pour créer des documents rapidement.

Générer des PDF distincts avec LINQ et 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#

Dans cet exemple, une série de catégories distinctes est obtenue en utilisant la méthode Distinct pour la collection de catégories. Il nous aidera à supprimer les éléments dupliqués d'une séquence. Ensuite, IronPDF est utilisé pour créer un document PDF avec des éléments uniques. Cette méthode garantit que des documents PDF distincts sont produits uniquement pour des catégories uniques.

Console OUTPUT

C# LINQ Distinct (Comment ça marche pour les développeurs) : Figure 3 - Sortie de la console

PDF généré

C# LINQ Distinct (Comment ça marche pour les développeurs) : Figure 4 - Sortie PDF : Rapport technologique

Pour en savoir plus sur l'exemple de code IronPDF permettant de générer des PDF à l'aide de HTML, reportez-vous à la page suivante ici.

Conclusion

La méthode d'extension Distinct de LINQ associée à IronPDF offre un mécanisme robuste et efficace pour créer des documents PDF uniques basés sur des valeurs. Cette méthode rationalise le code et garantit une production efficace de documents, que vous travailliez avec des catégories, des étiquettes ou toute autre donnée nécessitant des documents distincts.

Vous pouvez développer une solution fiable et expressive pour gérer les différents aspects de vos applications C# en utilisant LINQ pour le traitement des données et IronPDF pour la production de documents. Lorsque vous utilisez ces stratégies pour vos projets, gardez à l'esprit les besoins particuliers de votre application et ajustez la mise en œuvre pour obtenir une fiabilité et des performances maximales.

< PRÉCÉDENT
C# interne (Comment ça marche pour les développeurs)
SUIVANT >
File d'attente prioritaire en C# (Comment ça marche pour les développeurs)