IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

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

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

La requête intégrée au langage (LINQ), une fonctionnalité puissante du langage C#, permet aux programmeurs de créer des requêtes claires et expressives pour une variété de sources de données. Cet article discutera de l'utilisation de IronPDF, une bibliothèque C# polyvalente pour travailler avec des documents PDF, en utilisant la fonction Distinct de LINQ. Nous montrerons comment cette combinaison peut faciliter le processus de création de documents uniques à partir d'une collection. Dans cet article, nous allons apprendre la fonction distinct de C# LINQ avec IronPDF.

Comment utiliser la méthode LINQ Distinct en C#

  1. Créez un nouveau projet console.
  2. Importer le System.Linq namespace.
  3. Créez une liste avec plusieurs éléments.
  4. Appelez la méthode Distinct() depuis la liste.
  5. Obtenez les valeurs uniques et affichez le résultat sur la console.
  6. Disposez de tous les objets créés.

Qu'est-ce que LINQ

Les développeurs peuvent construire des requêtes claires et expressives pour la manipulation de données directement dans leur code grâce à la fonctionnalité LINQ (Language Integrated Query) de C#. Incluse pour la première fois dans le .NET Framework 3.5, LINQ offre une syntaxe standard pour interroger une gamme de sources de données, y compris les bases de données et les collections. LINQ facilite les tâches simples comme le filtrage et la projection en utilisant des opérateurs comme Where et Select, ce qui améliore la lisibilité du code. Parce qu'elle permet une exécution différée pour une vitesse optimale, cette fonctionnalité est cruciale pour les développeurs C# pour s'assurer que les opérations de manipulation de données sont effectuées rapidement et naturellement de manière analogue au SQL.

Comprendre LINQ Distinct

Les éléments dupliqués peuvent être retirés d'une collection ou d'une séquence en utilisant la fonction Distinct de LINQ. En l'absence de comparateur d'égalité personnalisé, il compare les éléments en utilisant leur comparateur par défaut. Cela en fait une excellente option dans les situations où vous avez besoin de travailler avec une collection unique et de supprimer les composants en double. La technique Distinct utilise les comparateurs d'égalité par défaut pour évaluer les valeurs. Elle exclura les doublons pour ne retourner que des éléments uniques.

Utilisation de base

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

using System.Linq;
using System.Collections.Generic;

public class DistinctExample
{
    public static void Example()
    {
        // Example list with duplicate integers
        List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };

        // Using Distinct to remove duplicates
        var distinctNumbers = numbers.Distinct();

        // Display the distinct numbers
        foreach (var number in distinctNumbers)
        {
            Console.WriteLine(number);
        }
    }
}

Comparateur d'égalité personnalisé

Vous pouvez définir une comparaison d'égalité personnalisée en utilisant une surcharge de la fonction Distinct. Cela est utile si vous souhaitez comparer des éléments selon des critères particuliers. Veuillez vous référer à l'exemple suivant :

using System;
using System.Collections.Generic;
using System.Linq;

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class PersonEqualityComparer : IEqualityComparer<Person>
{
    public bool Equals(Person x, Person y)
    {
        return x.FirstName == y.FirstName && x.LastName == y.LastName;
    }

    public int GetHashCode(Person obj)
    {
        return obj.FirstName.GetHashCode() ^ obj.LastName.GetHashCode();
    }
}

public class DistinctCustomComparerExample
{
    public static void Example()
    {
        // Example list of people
        List<Person> people = new List<Person>
        {
            new Person { FirstName = "John", LastName = "Doe" },
            new Person { FirstName = "Jane", LastName = "Doe" },
            new Person { FirstName = "John", LastName = "Doe" }
        };

        // Using Distinct with a custom equality comparer
        var distinctPeople = people.Distinct(new PersonEqualityComparer());

        // Display distinct people
        foreach (var person in distinctPeople)
        {
            Console.WriteLine($"{person.FirstName} {person.LastName}");
        }
    }
}

Utilisation de Distinct avec des types de valeur

Vous n'avez pas besoin de fournir une comparaison d'égalité personnalisée lorsque vous utilisez la méthode Distinct avec des types de valeur.

using System;
using System.Collections.Generic;
using System.Linq;

public class DistinctValueTypeExample
{
    public static void Example()
    {
        List<int> integers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };

        // Using Distinct to remove duplicates
        var distinctIntegers = integers.Distinct();

        // Display distinct integers
        foreach (var integer in distinctIntegers)
        {
            Console.WriteLine(integer);
        }
    }
}

Utilisation de Distinct avec des types anonymes

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

using System;
using System.Collections.Generic;
using System.Linq;

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class DistinctAnonymousTypesExample
{
    public static void Example()
    {
        List<Person> people = new List<Person>
        {
            new Person { FirstName = "John", LastName = "Doe" },
            new Person { FirstName = "Jane", LastName = "Doe" },
            new Person { FirstName = "John", LastName = "Doe" }
        };

        // Using Distinct with anonymous types
        var distinctPeople = people
            .Select(p => new { p.FirstName, p.LastName })
            .Distinct();

        // Display distinct anonymous types
        foreach (var person in distinctPeople)
        {
            Console.WriteLine($"{person.FirstName} {person.LastName}");
        }
    }
}

Distinct par une propriété spécifique

Lorsque vous travaillez avec des objets, vous pouvez soit créer votre logique pour distinguer un certain attribut, soit utiliser la méthode d'extension DistinctBy de bibliothèques tierces (comme MoreLINQ).

// Ensure to include the MoreLINQ Library
using MoreLinq;
using System;
using System.Collections.Generic;
using System.Linq;

public class Person
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class DistinctByExample
{
    public static void Example()
    {
        List<Person> people = new List<Person>
        {
            new Person { Id = 1, FirstName = "John", LastName = "Doe" },
            new Person { Id = 2, FirstName = "Jane", LastName = "Doe" },
            new Person { Id = 1, FirstName = "John", LastName = "Doe" }
        };

        // Using DistinctBy to filter distinct people by Id
        var distinctPeople = people.DistinctBy(p => p.Id);

        // Display distinct people
        foreach (var person in distinctPeople)
        {
            Console.WriteLine($"{person.Id}: {person.FirstName} {person.LastName}");
        }
    }
}

IronPDF

Les programmeurs peuvent créer, éditer et modifier des documents PDF en utilisant le langage C# avec l'aide de la bibliothèque .NET Site Web IronPDF. Le programme offre une gamme d'outils et de fonctionnalités pour permettre diverses tâches impliquant des fichiers PDF, telles que générer des PDFs à partir de HTML, convertir du HTML en PDF, fusionner ou diviser des documents PDF, et ajouter du texte, des images et des annotations aux PDFs déjà existants. Pour en savoir plus sur IronPDF, veuillez vous référer à leur Documentation IronPDF.

La fonctionnalité principale d'IronPDF est la Conversion d'HTML en PDF, qui conserve vos mises en page et styles intacts. Vous pouvez générer des PDFs à partir de contenu web, idéal pour les rapports, les factures et la documentation. Il prend en charge la conversion de fichiers HTML, d'URLs et de 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");
    }
}

Caractéristiques de IronPDF

  • Convertir HTML en PDF : Vous pouvez utiliser IronPDF pour convertir tout type de données HTML - y compris des fichiers, des URLs, 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 de manière programmatique à des documents PDF en utilisant le 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 éditer des PDFs déjà existants.
  • Formulaires PDF : La bibliothèque permet aux utilisateurs de construire et de remplir des formulaires PDF, ce qui est utile dans les situations où des données de formulaire doivent être recueillies et traitées.
  • Fonctionnalités de sécurité : IronPDF peut être utilisé pour crypter des documents PDF et fournir une protection par mot de passe et autorisation.
  • Extraction de texte : Du texte à partir de fichiers PDF peut être extrait avec IronPDF.

Installer IronPDF

Obtenez la bibliothèque IronPDF ; c'est nécessaire pour configurer votre projet. Entrez le code suivant dans la console du gestionnaire de packages NuGet pour accomplir cela :

PM > Install-Package IronPdf

C# LINQ Distinct (How It Works For Developers): Figure 1 - To install the IronPDF library using the NuGet Package Manager Console, enter the following command: "Install IronPDF" or ".NET add package IronPDF"

Utiliser le gestionnaire de packages NuGet pour rechercher le package "IronPDF" est une option complémentaire. Nous pouvons choisir et télécharger le package requis dans cette liste parmi tous les packages NuGet associés à IronPDF.

C# LINQ Distinct (How It Works For Developers): Figure 2 - To install the IronPDF library using the NuGet Package Manager, search for the package "IronPDF" in the Browse tab and choose the latest version of IronPDF package to download and install in your project.

LINQ Avec IronPDF

Considérez une situation dans laquelle vous avez un ensemble de données et vous souhaitez créer divers documents PDF en fonction de différentes valeurs de cet ensemble. C'est là que l'utilité de Distinct de LINQ est particulièrement efficace, notamment lorsqu'il est utilisé avec IronPDF pour créer rapidement des documents.

Génération de PDFs Distincts avec LINQ et IronPDF

using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;

public class DocumentGenerator
{
    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
        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}");
    }
}

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

Sortie de la console

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

Sortie de PDF généré

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

Pour en savoir plus sur l'exemple de code IronPDF pour générer des PDFs en utilisant HTML, consultez l'Exemple de code IronPDF HTML en PDF.

Conclusion

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

Vous pouvez développer une solution fiable et expressive pour gérer 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 l'implémentation pour atteindre une fiabilité et une performance maximales.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $