Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
La programación en C# es flexible y ofrece una gran variedad de estructuras de datos para gestionar eficazmente diversos trabajos. EnHashSet es una de esas potentes estructuras de datos que ofrece componentes distintos y una complejidad media en tiempo constante para las operaciones fundamentales. Este post examinará el uso de HashSet en C# y cómo se puede utilizar conIronPDFuna potente biblioteca para trabajar con documentos PDF.
Cree un nuevo proyecto de aplicación de consola.
Crear un objeto para el HashSet en C#. Añade el valor por defecto al HashSet.
Al añadir, HashSet eliminará automáticamente los elementos duplicados comprobando si el elemento existe.
Procesa el HashSet sólo los elementos únicos de uno en uno.
HashSet en C# está diseñado para proporcionar operaciones de conjunto de alto rendimiento. Un HashSet es la colección perfecta para utilizar en situaciones en las que se necesita mantener un conjunto de datos distinto, ya que evita los elementos duplicados. Se incluye en las tablas System.Assortments.Hash, la base del espacio de nombres genérico de C#, y proporciona operaciones rápidas de inserción, eliminación, recuperación y búsqueda. También podemos encontrar el subconjunto adecuado en los elementos HashSet. En C#, utilice los métodos de operaciones de conjunto HashSet que le permiten realizar fácilmente operaciones de conjunto estándar. La clase HashSet proporciona métodos de operaciones de conjunto.
Los siguientes son algunos usos en C# de un HashSet:
Establecer un HashSet y llevar a cabo acciones fundamentales como añadir, eliminar y verificar la existencia de entradas.
// set operations
HashSet<int> numbers = new HashSet<int>();
// Add elements
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// Remove an element, predicate function
numbers.Remove(2);
// Check for membership or duplicate element
bool containsThree = numbers.Contains(3);
// set operations
HashSet<int> numbers = new HashSet<int>();
// Add elements
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// Remove an element, predicate function
numbers.Remove(2);
// Check for membership or duplicate element
bool containsThree = numbers.Contains(3);
' set operations
Dim numbers As New HashSet(Of Integer)()
' Add elements
numbers.Add(1)
numbers.Add(2)
numbers.Add(3)
' Remove an element, predicate function
numbers.Remove(2)
' Check for membership or duplicate element
Dim containsThree As Boolean = numbers.Contains(3)
Al utilizar una colección existente como punto de partida para un HashSet, los duplicados se eliminan inmediatamente.
List<int> duplicateNumbers = new List<int> { 1, 2, 2, 3, 3, 4 }; // all the elements
HashSet<int> uniqueNumbers = new HashSet<int>(duplicateNumbers);
List<int> duplicateNumbers = new List<int> { 1, 2, 2, 3, 3, 4 }; // all the elements
HashSet<int> uniqueNumbers = new HashSet<int>(duplicateNumbers);
Dim duplicateNumbers As New List(Of Integer) From {1, 2, 2, 3, 3, 4} ' all the elements
Dim uniqueNumbers As New HashSet(Of Integer)(duplicateNumbers)
Combinar dos instancias de HashSet para producir un nuevo conjunto que combine elementos distintos de ambos conjuntos utilizando la función UnionWith.
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.UnionWith(set2); // set1 now contains { 1, 2, 3, 4, 5 }
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.UnionWith(set2); // set1 now contains { 1, 2, 3, 4, 5 }
Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
Dim set2 As New HashSet(Of Integer) From {3, 4, 5}
set1.UnionWith(set2) ' set1 now contains { 1, 2, 3, 4, 5 }
Utilizando la función IntersectWith, determina los componentes compartidos entre dos instancias de HashSet.
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.IntersectWith(set2); // set1 now contains { 3 }
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.IntersectWith(set2); // set1 now contains { 3 }
Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
Dim set2 As New HashSet(Of Integer) From {3, 4, 5}
set1.IntersectWith(set2) ' set1 now contains { 3 }
Utilizando la función ExceptWith, encuentra los elementos que están en un HashSet pero no en otro.
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.ExceptWith(set2); // set1 now contains { 1, 2 }
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.ExceptWith(set2); // set1 now contains { 1, 2 }
Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
Dim set2 As New HashSet(Of Integer) From {3, 4, 5}
set1.ExceptWith(set2) ' set1 now contains { 1, 2 }
Comprobación de subconjunto o superconjunto:
Los métodos IsSubsetOf e IsSupersetOf permiten determinar si un HashSet es un subconjunto o un superconjunto de otro.
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 2, 3 };
bool isSubset = set2.IsSubsetOf(set1); // returns true
bool isSuperset = set1.IsSupersetOf(set2); // returns true
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 2, 3 };
bool isSubset = set2.IsSubsetOf(set1); // returns true
bool isSuperset = set1.IsSupersetOf(set2); // returns true
Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
Dim set2 As New HashSet(Of Integer) From {2, 3}
Dim isSubset As Boolean = set2.IsSubsetOf(set1) ' returns true
Dim isSuperset As Boolean = set1.IsSupersetOf(set2) ' returns true
Utilizando la técnica SymmetricExceptWith, determine la diferencia simétrica(elementos presentes en un conjunto, pero no en ambos).
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.SymmetricExceptWith(set2); // set1 now contains { 1, 2, 4, 5 }
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.SymmetricExceptWith(set2); // set1 now contains { 1, 2, 4, 5 }
Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
Dim set2 As New HashSet(Of Integer) From {3, 4, 5}
set1.SymmetricExceptWith(set2) ' set1 now contains { 1, 2, 4, 5 }
Los programadores pueden utilizar el lenguaje C# para producir, editar y modificar documentos PDF mediante el uso de la funciónBiblioteca IronPDF for .NET. La aplicación ofrece una amplia gama de herramientas y funciones que permiten realizar distintas operaciones con archivos PDF, como crear nuevos PDF a partir de HTML, convertir HTML a PDF, combinar o dividir documentos PDF y anotar PDF existentes con texto, fotos y otros datos. Para saber más sobre IronPDF, consultela documentación oficial.
Adquiera la biblioteca IronPDF; el próximo parche lo requiere. Para ello, introduzca el siguiente código en el Gestor de paquetes:
Install-Package IronPDF
//or
dotnet add package IronPdf
Otra opción es buscar el paquete "IronPDF" utilizando el gestor de paquetes NuGet. De todos los paquetes NuGet relacionados con IronPDF, podemos seleccionar y descargar el paquete requerido de esta lista.
Dentro del entorno C#, IronPDF es una potente biblioteca que facilita el trabajo con documentos PDF. En situaciones en las que la representación clara de los datos y la creación eficaz de documentos son cruciales, la combinación de la eficacia de HashSet con los poderes de manipulación de documentos de IronPDF puede dar lugar a soluciones creativas.
Producción simplificada de documentos: IronPDF agiliza el proceso de creación de documentos PDF en C#. Puede establecer procesos rápidos y eficaces para producir contenido original y dinámico para sus PDF integrando HashSet con IronPDF.
Veamos ahora un escenario real en el que el uso de HashSet con IronPDF puede resultar útil.
using IronPdf;
using System;
using System.Collections.Generic;
using System.IO;
class PdfGenerator
{
static void Main()
{
// Sample user names
string [] userNames = { "Alice", "Bob", "Charlie", "Bob", "David", "Alice" };
// Using HashSet to store unique user names
HashSet<string> uniqueUserNames = new HashSet<string>(userNames);
// Generating PDF with unique user names
GeneratePdf(uniqueUserNames);
}
static void GeneratePdf(HashSet<string> uniqueUserNames)
{
// Create a new PDF document using IronPDF
IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf();
PdfDocument pdf = renderer.RenderHtmlAsPdf(BuildHtmlDocument(uniqueUserNames));
// Save the PDF to a file
string pdfFilePath = "UniqueUserNames.pdf";
pdf.SaveAs(pdfFilePath);
// Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}");
}
static string BuildHtmlDocument(HashSet<string> uniqueUserNames)
{
// Build an HTML document with unique user names
string htmlDocument = "<html><body><ul>";
foreach (var userName in uniqueUserNames)
{
htmlDocument += $"<li>{userName}</li>";
}
htmlDocument += "</ul></body></html>";
return htmlDocument;
}
}
using IronPdf;
using System;
using System.Collections.Generic;
using System.IO;
class PdfGenerator
{
static void Main()
{
// Sample user names
string [] userNames = { "Alice", "Bob", "Charlie", "Bob", "David", "Alice" };
// Using HashSet to store unique user names
HashSet<string> uniqueUserNames = new HashSet<string>(userNames);
// Generating PDF with unique user names
GeneratePdf(uniqueUserNames);
}
static void GeneratePdf(HashSet<string> uniqueUserNames)
{
// Create a new PDF document using IronPDF
IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf();
PdfDocument pdf = renderer.RenderHtmlAsPdf(BuildHtmlDocument(uniqueUserNames));
// Save the PDF to a file
string pdfFilePath = "UniqueUserNames.pdf";
pdf.SaveAs(pdfFilePath);
// Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}");
}
static string BuildHtmlDocument(HashSet<string> uniqueUserNames)
{
// Build an HTML document with unique user names
string htmlDocument = "<html><body><ul>";
foreach (var userName in uniqueUserNames)
{
htmlDocument += $"<li>{userName}</li>";
}
htmlDocument += "</ul></body></html>";
return htmlDocument;
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.IO
Friend Class PdfGenerator
Shared Sub Main()
' Sample user names
Dim userNames() As String = { "Alice", "Bob", "Charlie", "Bob", "David", "Alice" }
' Using HashSet to store unique user names
Dim uniqueUserNames As New HashSet(Of String)(userNames)
' Generating PDF with unique user names
GeneratePdf(uniqueUserNames)
End Sub
Private Shared Sub GeneratePdf(ByVal uniqueUserNames As HashSet(Of String))
' Create a new PDF document using IronPDF
Dim renderer As New IronPdf.HtmlToPdf()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(BuildHtmlDocument(uniqueUserNames))
' Save the PDF to a file
Dim pdfFilePath As String = "UniqueUserNames.pdf"
pdf.SaveAs(pdfFilePath)
' Display a message with the file path
Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}")
End Sub
Private Shared Function BuildHtmlDocument(ByVal uniqueUserNames As HashSet(Of String)) As String
' Build an HTML document with unique user names
Dim htmlDocument As String = "<html><body><ul>"
For Each userName In uniqueUserNames
htmlDocument &= $"<li>{userName}</li>"
Next userName
htmlDocument &= "</ul></body></html>"
Return htmlDocument
End Function
End Class
En el ejemplo de código anterior, guardamos nombres de usuario únicos recuperados de una matriz utilizando un HashSet uniqueUserNames. El HashSet elimina automáticamente los duplicados. A continuación, creamos una lista desordenada de estos nombres de usuario distintos en un documento PDF utilizando IronPDF. Para saber más sobre el código, consulteuso de HTML para crear un PDF.
En resumen, la estructura de datos HashSet de C# es una herramienta eficaz para organizar conjuntos de elementos distintos. Crea nuevas oportunidades para la creación de documentos PDF dinámicos, únicos y de rendimiento optimizado cuando se combina con IronPDF.
Ilustramos cómo utilizar HashSet para garantizar la unicidad de los datos mientras se utilizaIronPDF para crear documentos PDF en el ejemplo que se dio. La creación de aplicaciones C# sólidas y eficaces puede beneficiarse de la combinación de HashSet e IronPDF, tanto si trabaja en la deduplicación de datos, la generación de informes o la gestión de contenidos dinámicos. A medida que investigues más, ten en cuenta los muchos contextos en los que podrías utilizar esta combinación para mejorar la usabilidad y funcionalidad de tus aplicaciones.
La versión $749 Lite de IronPDF incluye una licencia permanente, opciones de actualización y un año de soporte de software. En toda la marca de aguaperiodo de prueba sobre licencias para obtener más información sobre el precio, las licencias y la versión de prueba gratuita de IronPDF. Visite elSitio web de Iron Software para más información sobre Iron Software.
9 productos API .NET para sus documentos de oficina