IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

C# LINQ Distinct (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

La consulta integrada en el lenguaje (LINQ), una poderosa característica del lenguaje en C#, permite a los programadores crear consultas claras y expresivas para una variedad de fuentes de datos. Esta publicación discutirá el uso de IronPDF, una versátil biblioteca de C# para trabajar con documentos PDF, utilizando la función Distinct de LINQ. Mostraremos cómo esta combinación puede facilitar el proceso de creación de documentos únicos a partir de una colección. En este artículo, vamos a aprender sobre la función distinct de LINQ en C# con IronPDF.

Cómo usar el método Distinct de C# LINQ

  1. Cree un nuevo proyecto de consola.
  2. Importar System.Linq namespace.
  3. Cree una lista con varios elementos.
  4. Llame al método Distinct() de la lista.
  5. Obtenga los valores únicos y muestre el resultado en la consola.
  6. Deseche todos los objetos creados.

Qué es LINQ

Los desarrolladores pueden construir consultas claras y expresivas para la manipulación de datos directamente en su código con la característica LINQ (Consulta Integrada al Lenguaje) en C#. Incluido por primera vez en .NET Framework 3.5, LINQ ofrece una sintaxis estándar para consultar una variedad de fuentes de datos, incluidas bases de datos y colecciones. LINQ facilita tareas simples como filtrado y proyección usando operadores como Where y Select, lo que mejora la legibilidad del código. Debido a que permite la ejecución diferida para una velocidad óptima, esta característica es crucial para los desarrolladores de C# para asegurarse de que las operaciones de manipulación de datos se completen de manera rápida y natural de una manera análoga a SQL.

Entendiendo LINQ Distinct

Es posible eliminar elementos duplicados de una colección o secuencia utilizando la función Distinct de LINQ. En ausencia de un comparador de igualdad personalizado, compara los elementos utilizando su comparador por defecto. Esto lo convierte en una excelente opción en situaciones donde necesitas trabajar con una colección única y eliminar componentes duplicados. La técnica Distinct utiliza los comparadores de igualdad predeterminados para evaluar valores. Excluye duplicados para devolver solo elementos únicos.

Uso básico

Para obtener elementos distintos, la forma más sencilla de utilizarlo es emplear directamente el método Distinct en una colección.

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);
        }
    }
}

Comparador de igualdad personalizado

Puede definir una comparación de igualdad personalizada utilizando una sobrecarga de la función Distinct. Esto es útil si deseas comparar elementos de acuerdo con criterios particulares. Por favor, consulta el siguiente ejemplo:

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}");
        }
    }
}

Uso de Distinct con tipos de valor

No necesita proporcionar una comparación de igualdad personalizada al usar el método Distinct con tipos de valor.

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);
        }
    }
}

Uso de Distinct con tipos anónimos

Distinct puede usarse con tipos anónimos para eliminar duplicados basados en atributos particulares. Por favor, consulta el siguiente ejemplo:

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}");
        }
    }
}

Distinción por una propiedad específica

Al trabajar con objetos, puede crear su propia lógica para distinguir por cierto atributo o puede utilizar el método de extensión DistinctBy de bibliotecas de terceros (como 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

Los programadores pueden crear, editar y modificar documentos PDF usando el lenguaje C# con la ayuda de la biblioteca .NET IronPDF Website. El programa proporciona una variedad de herramientas y funcionalidades para habilitar diversas tareas relacionadas con archivos PDF, como generar PDFs desde HTML, convertir HTML a PDF, fusionar o dividir documentos PDF, y agregar texto, imágenes y anotaciones a PDFs ya existentes. Para saber más sobre IronPDF, consulta su Documentación de IronPDF.

La principal característica de IronPDF es Conversión HTML a PDF, que mantiene tus diseños y estilos intactos. Puedes generar PDFs a partir de contenido web, perfecto para informes, facturas y documentación. Admite la conversión de archivos HTML, URL y cadenas HTML a archivos 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");
    }
}

Características de IronPDF

  • Convertir HTML a PDF: Puedes usar IronPDF para convertir cualquier tipo de datos HTML —incluyendo archivos, URL y cadenas de código HTML— en documentos PDF.
  • Generación de PDF: Puedes agregar programáticamente texto, imágenes y otros elementos a documentos PDF usando el lenguaje de programación C#.
  • Manipulación de PDF: IronPDF puede dividir un archivo PDF en varios archivos, fusionar varios documentos PDF en un solo archivo y editar PDFs existentes.
  • Formularios PDF: La biblioteca permite a los usuarios construir y completar formularios PDF, lo que es útil en escenarios donde se necesita recopilar y procesar datos de formularios.
  • Características de Seguridad: Se puede usar IronPDF para encriptar documentos PDF y proporcionar protección mediante contraseña y permisos.
  • Extracción de Texto: Se puede extraer texto de archivos PDF utilizando IronPDF.

Instalar IronPDF

Obtenga la biblioteca IronPDF; es necesario para configurar tu proyecto. Ingresa el siguiente código en la Consola del Administrador de Paquetes NuGet para lograr esto:

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"

Usar el Administrador de Paquetes NuGet para buscar el paquete "IronPDF" es una opción adicional. Podemos elegir y descargar el paquete necesario de esta lista entre todos los paquetes NuGet asociados con 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 con IronPDF

Considera una situación en la que tienes un conjunto de datos y deseas crear varios documentos PDF de acuerdo con diferentes valores en ese conjunto. Aquí es donde brilla la utilidad de Distinct de LINQ, especialmente cuando se usa con IronPDF para crear documentos rápidamente.

Generación de PDF distintos con LINQ y 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}");
    }
}

En este ejemplo, se obtienen una serie de categorías distintas utilizando el método Distinct para la colección de categorías. Ayuda a eliminar elementos duplicados de una secuencia. A continuación, IronPDF se usa para crear un documento PDF con estos elementos únicos. Este método garantiza que se produzcan documentos PDF separados exclusivamente para categorías únicas.

SALIDA DE LA CONSOLA

C# LINQ Distinct (Cómo Funciona Para Desarrolladores): Figura 3 - Salida de Consola

Resultado PDF generado

C# LINQ Distinct (Cómo Funciona Para Desarrolladores): Figura 4 - Salida PDF: Informe de Tecnología

Para saber más sobre el ejemplo de código de IronPDF para generar PDFs usando HTML, consulta el Ejemplo de Código de IronPDF HTML a PDF.

Conclusión

El método de extensión Distinct de LINQ en conjunto con IronPDF ofrece un mecanismo robusto y eficiente para crear documentos PDF únicos basados en valores. Este método simplifica el código y garantiza una producción de documentos eficaz ya estés trabajando con categorías, etiquetas u otros datos donde se necesitan documentos separados.

Puedes desarrollar una solución confiable y expresiva para gestionar diferentes aspectos de tus aplicaciones C# utilizando LINQ para el procesamiento de datos e IronPDF para la producción de documentos. Al usar estas estrategias para tus proyectos, ten en cuenta las necesidades particulares de tu aplicación y ajusta la implementación para lograr la máxima confiabilidad y rendimiento.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999