AYUDA .NET

C# LINQ Distinct (Cómo funciona para desarrolladores)

Publicado en 18 de febrero, 2024
Compartir:

Introducción

Consulta integrada en el idioma(LINQ), una potente función del lenguaje C#, permite a los programadores crear búsquedas claras y expresivas para una gran variedad de fuentes de datos. En este artículo se analiza el uso deIronPDFuna biblioteca versátil de C# para trabajar con documentos PDF, utilizandoLINQ se distingue función. 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 C# LINQ distinct con IronPDF.

Cómo utilizar el método C# LINQ Distinct

  1. Crea un nuevo proyecto de consola.

  2. Importar el espacio de nombres System.Linq.

  3. Crear una lista con varios elementos.

  4. Llamar al método Distinto() de la Lista.

  5. Obtener los valores únicos y mostrar el resultado en la consola.

  6. Elimina todos los objetos creados.

Qué es LINQ

Los desarrolladores pueden crear consultas claras y expresivas para la manipulación de datos directamente en su código con LINQ de C#.(Idioma Consulta integrada) característica. LINQ, que se incluyó por primera vez en .NET Framework 3.5, ofrece una sintaxis estándar para consultar diversas fuentes de datos, como bases de datos y colecciones. LINQ facilita tareas sencillas como el filtrado y la proyección mediante operadores como Where y Select, lo que mejora la legibilidad del código. Dado que permite posponer la ejecución para conseguir una velocidad óptima, esta función es crucial para que los desarrolladores de C# se aseguren de que las operaciones de manipulación de datos se completan con rapidez y naturalidad de forma análoga a SQL.

Entender LINQ Distinct

Los elementos duplicados pueden eliminarse 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 gran opción en situaciones en las que se necesita trabajar con una colección única y eliminar componentes duplicados. La técnica Distinct utiliza la comparación de igualdad por defecto para evaluar valores. Devolverá false para la propiedad particular que esté duplicada basándose en que mostrará elementos únicos.

Uso básico

Para obtener elementos distintos, lo más sencillo es utilizar el método Distinct directamente sobre una colección.

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

Comparador de igualdad personalizado

Puede definir una comparación de igualdad personalizada utilizando una sobrecarga de la función Distinct. Esto es útil si desea comparar artículos según normas concretas. Consulte el siguiente ejemplo:

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

Utilización de Distinct con tipos de valor

No es necesario proporcionar una comparación de igualdad personalizada cuando se utiliza el método Distinct con tipos de valor.

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

Uso de Distinct con tipos anónimos

Distinct puede utilizarse con tipos anónimos para eliminar duplicados basándose en atributos concretos. Consulte el siguiente ejemplo:

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#

Distinto por una propiedad específica

Cuando trabaje con objetos, puede crear su propia lógica para distinguir por un atributo determinado, o puede utilizar el método de extensión DistinctBy de bibliotecas de terceros(como Más 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

Los programadores pueden crear, editar y modificar documentos PDF utilizando el lenguaje C# con ayuda de la biblioteca .NETSitio web de IronPDF. El programa ofrece una serie de herramientas y funcionalidades que permiten realizar diversas tareas relacionadas con archivos PDF, como generar PDF a partir de HTML, convertir HTML a PDF, fusionar o dividir documentos PDF y añadir texto, imágenes y anotaciones a PDF ya existentes. Para saber más sobre IronPDF, consulte suDocumentación de IronPDF.

La principal característica de IronPDF esConversión de HTML a PDFque mantiene intactos tus diseños y estilos. Puede generar archivos PDF a partir de contenidos web, perfectos para informes, facturas y documentación. Permite convertir archivos HTML, URL y cadenas HTML en 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");
    }
}
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#

Características de IronPDF

  • Convertir HTML a PDF: Puede utilizar IronPDF para convertir cualquier tipo de datos HTML -incluidos archivos, URL y cadenas de código HTML- en documentos PDF.
  • Generación de PDF: El texto, las imágenes y otros elementos pueden añadirse mediante programación a los documentos PDF utilizando el lenguaje de programación C#.
  • Manipulación de PDF: IronPDF puede dividir un archivo PDF en muchos archivos, fusionar varios documentos PDF en un solo archivo y editar PDF ya existentes.
  • Formularios PDF: Dado que la biblioteca permite a los usuarios crear y rellenar formularios PDF, resulta útil en situaciones en las que es necesario recopilar y procesar datos de formularios.
  • Funciones de seguridad: IronPDF puede utilizarse para cifrar documentos PDF y proporcionar protección mediante contraseña y permisos.
  • Extracción de texto: El texto de los archivos PDF puede extraerse con IronPDF.

Instalar IronPDF

Obtenga la biblioteca IronPDF; es necesario para el futuro parche. Para ello, introduzca el siguiente código en la consola del gestor de paquetes NuGet:

Install-Package IronPdf

C# LINQ Distinct(Cómo funciona para los desarrolladores): Figura 1 - Para instalar la biblioteca IronPDF mediante la consola del gestor de paquetes NuGet, introduzca el siguiente comando: Install IronPDF o dotnet add package IronPdf

Otra opción es utilizar el gestor de paquetes NuGet para buscar el paquete "IronPDF". Podemos elegir y descargar el paquete necesario de esta lista de todos los paquetes NuGet asociados con IronPDF.

C# LINQ Distinct(Cómo funciona para los desarrolladores): Figura 2 - Para instalar la biblioteca IronPDF utilizando el gestor de paquetes NuGet, busque el paquete IronPDF en la pestaña Examinar y elija la última versión del paquete IronPDF para descargarlo e instalarlo en su proyecto.

LINQ con IronPDF

Considere una situación en la que dispone de un conjunto de datos y desea crear varios documentos PDF en función de los distintos valores de dicho conjunto. Aquí es donde brilla la utilidad de Distinct de LINQ, sobre todo cuando se utiliza con IronPDF para crear documentos rápidamente.

Generación de PDF distintos con LINQ e 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#

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

Salida de la consola

C# LINQ Distinct(Cómo funciona para los desarrolladores): Figura 3 - Salida de la consola

PDF generado

C# LINQ Distinct(Cómo funciona para los desarrolladores): Figura 4 - Salida PDF: Informe tecnológico

Para obtener más información sobre el ejemplo de código de IronPDF para generar archivos PDF utilizando HTML, consulte la páginaCódigo de ejemplo de HTML a PDF de IronPDF.

Conclusión

El método de extensión Distinct de LINQ junto con IronPDF ofrece un mecanismo sólido y eficaz para crear documentos PDF únicos basados en valores. Este método agiliza el código y garantiza la producción eficaz de documentos, tanto si trabaja con categorías, etiquetas o cualquier otro dato que requiera documentos independientes.

Puede desarrollar una solución fiable y expresiva para gestionar diferentes aspectos de sus aplicaciones C# utilizando LINQ para el procesamiento de datos e IronPDF para la producción de documentos. Cuando utilice estas estrategias en sus proyectos, tenga en cuenta las necesidades particulares de su aplicación y ajuste la implementación para lograr la máxima fiabilidad y rendimiento.

< ANTERIOR
C# Internal (Cómo funciona para los desarrolladores)
SIGUIENTE >
Cola de prioridades en C# (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >