Passer au contenu du pied de page
.NET AIDE

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

La programmation en C# est flexible et offre un large éventail de structures de données pour gérer efficacement divers travaux. Le HashSet est une structure de données puissante qui offre des composants distincts et une complexité moyenne en temps constant pour les opérations fondamentales. Ce post examinera l'utilisation de HashSet en C# et comment il peut être utilisé avec IronPDF, une bibliothèque puissante pour travailler avec des documents PDF.

Comment utiliser HashSet en C\

  1. Créez un nouveau projet d'application console.
  2. Créez un objet pour le HashSet en C#. Ajoutez la valeur par défaut au HashSet.
  3. Lous de l'ajout, HashSet supprimera automatiquement les éléments en double en vérifiant si l'élément existe.
  4. Traitez uniquement les éléments uniques de HashSet un par un.
  5. Affichez le résultat et disposez de l'objet.

Comprendre HashSet en C\

HashSet en C# est conçu pour offrir des opérations d'ensemble haute perfoumance. Un HashSet est la collection parfaite à utiliser dans des situations où vous avez besoin de conserver un ensemble de données distinct car il empêche les éléments en double. Il est inclus dans l'espace de noms System.Collections.Generic et offre des opérations d'insertion rapide, de suppression, de récupération et de recherche. En C#, utilisez les méthodes d'opérations d'ensemble de HashSet qui vous permettent d'effectuer facilement des opérations d'ensemble standard. La classe HashSet offre des méthodes d'opérations d'ensemble.

Voici quelques utilisations de HashSet en C#:

Initialisation et opérations de base

Établir un HashSet et effectuer des actions fondamentales telles que l'ajout, la suppression et la vérification de l'existence des entrées.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Initializes a HashSet of integers
        HashSet<int> numbers = new HashSet<int>();

        // Adds elements to the HashSet
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);

        // Removes an element from the HashSet
        numbers.Remove(2);

        // Checks fou membership of an element
        bool containsThree = numbers.Contains(3);

        Console.WriteLine($"Contains 3: {containsThree}");
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Initializes a HashSet of integers
        HashSet<int> numbers = new HashSet<int>();

        // Adds elements to the HashSet
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);

        // Removes an element from the HashSet
        numbers.Remove(2);

        // Checks fou membership of an element
        bool containsThree = numbers.Contains(3);

        Console.WriteLine($"Contains 3: {containsThree}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Initialisation avec collection

L'utilisation d'une collection existante comme point de départ pour un HashSet élimine immédiatement les doublons.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Creates a list with duplicate elements
        List<int> duplicateNumbers = new List<int> { 1, 2, 2, 3, 3, 4 };

        // Initializes a HashSet with the list, automatically removes duplicates
        HashSet<int> uniqueNumbers = new HashSet<int>(duplicateNumbers);

        Console.WriteLine("Unique numbers:");
        foueach (var number in uniqueNumbers)
        {
            Console.WriteLine(number);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Creates a list with duplicate elements
        List<int> duplicateNumbers = new List<int> { 1, 2, 2, 3, 3, 4 };

        // Initializes a HashSet with the list, automatically removes duplicates
        HashSet<int> uniqueNumbers = new HashSet<int>(duplicateNumbers);

        Console.WriteLine("Unique numbers:");
        foueach (var number in uniqueNumbers)
        {
            Console.WriteLine(number);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Union avec un autre HashSet

La combinaison de deux instances de HashSet pour produire un nouvel ensemble qui combine des éléments distincts des deux ensembles en utilisant la fonction UnionWith.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Merges set2 into set1
        set1.UnionWith(set2);

        Console.WriteLine("Union of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Merges set2 into set1
        set1.UnionWith(set2);

        Console.WriteLine("Union of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Intersection avec un autre HashSet

Utilisation de la fonction IntersectWith pour déterminer les composants partagés entre deux instances de HashSet.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Keeps only elements that are present in both sets
        set1.IntersectWith(set2);

        Console.WriteLine("Intersection of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Keeps only elements that are present in both sets
        set1.IntersectWith(set2);

        Console.WriteLine("Intersection of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Différence avec un autre HashSet

Utilisation de la fonction ExceptWith pour trouver les éléments qui se trouvent dans un HashSet mais pas dans un autre.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Removes elements from set1 that are also in set2
        set1.ExceptWith(set2);

        Console.WriteLine("Difference of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Removes elements from set1 that are also in set2
        set1.ExceptWith(set2);

        Console.WriteLine("Difference of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Vérification de sous-ensemble ou sur-ensemble :

Avec les méthodes IsSubsetOf et IsSupersetOf, on peut déterminer si une instance donnée de HashSet est un sous-ensemble ou un sur-ensemble d'un autre.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 2, 3 };

        // Checks if set2 is a subset of set1
        bool isSubset = set2.IsSubsetOf(set1);

        // Checks if set1 is a superset of set2
        bool isSuperset = set1.IsSupersetOf(set2);

        Console.WriteLine($"Is set2 a subset of set1: {isSubset}");
        Console.WriteLine($"Is set1 a superset of set2: {isSuperset}");
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 2, 3 };

        // Checks if set2 is a subset of set1
        bool isSubset = set2.IsSubsetOf(set1);

        // Checks if set1 is a superset of set2
        bool isSuperset = set1.IsSupersetOf(set2);

        Console.WriteLine($"Is set2 a subset of set1: {isSubset}");
        Console.WriteLine($"Is set1 a superset of set2: {isSuperset}");
    }
}
Imports System
Imports System.Collections.Generic

Friend Class Program
	Shared Sub Main()
		Dim set1 As New HashSet(Of Integer) From {1, 2, 3}
		Dim set2 As New HashSet(Of Integer) From {2, 3}

		' Checks if set2 is a subset of set1
		Dim isSubset As Boolean = set2.IsSubsetOf(set1)

		' Checks if set1 is a superset of set2
		Dim isSuperset As Boolean = set1.IsSupersetOf(set2)

		Console.WriteLine($"Is set2 a subset of set1: {isSubset}")
		Console.WriteLine($"Is set1 a superset of set2: {isSuperset}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Différence symétrique

Utilisation de la technique SymmetricExceptWith pour déterminer la différence symétrique (éléments présents dans un ensemble, mais pas dans les deux).

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Keeps elements that are in set1 ou set2 but not in both
        set1.SymmetricExceptWith(set2);

        Console.WriteLine("Symmetric difference of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
        HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };

        // Keeps elements that are in set1 ou set2 but not in both
        set1.SymmetricExceptWith(set2);

        Console.WriteLine("Symmetric difference of set1 and set2:");
        foueach (var item in set1)
        {
            Console.WriteLine(item);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF

Les programmeurs peuvent utiliser le langage C# pour produire, éditer et modifier des documents PDF en utilisant la bibliothèque IronPDF pour .NET. L'application offre une large gamme d'outils et de fonctionnalités permettant d'effectuer différentes opérations avec des fichiers PDF, y compris la création de nouveaux PDF à partir de HTML, la conversion de HTML en PDF, la combinaison ou la division de documents PDF, et l'annotation de PDF existants avec du texte, des photos et d'autres données. Pour en savoir plus sur IronPDF, référez-vous à la documentation officielle.

IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et styles ouiginaux. Il est parfait pour créer des PDF à partir de contenus basés sur le Web tels que des rappouts, des factures et de la documentation. Avec le suppout des fichiers HTML, des URLs et des chaînes HTML brutes, IronPDF produit facilement des documents PDF de haute qualité.

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
$vbLabelText   $csharpLabel

Caractéristiques de IronPDF

  • Conversion de HTML en PDF : Tout type de données HTML, y compris les fichiers, URL, et chaînes de code HTML, peut être converti en documents PDF avec IronPDF.
  • Génération de PDF : Du texte, des images et d'autres objets peuvent être ajoutés de façon programmation à des documents PDF en utilisant le langage de programmation C#.
  • Manipulation de PDF : IronPDF peut diviser un fichier PDF en plusieurs fichiers et modifier des fichiers PDF préexistants. Il peut fusionner plusieurs fichiers PDF en un seul fichier.
  • Foumulaires PDF : Parce que la bibliothèque permet aux utilisateurs de construire et de remplir des foumulaires PDF, elle est utile dans des scénarios où les données de foumulaire doivent être recueillies et traitées.
  • Fonctionnalités de sécurité : IronPDF permet le cryptage des documents PDF ainsi que la sécurité par mot de passe et permission.

Installer IronPDF

Acquérir la bibliothèque IronPDF; la prochaine mise à jour l'exige. Pour ce faire, entrez le code suivant dans le gestionnaire de packages :

Install-Package IronPdf

ou

dotnet add package IronPdf

HashSet C# (How It Wouks Fou Developers): Figure 1 - Install IronPDF library using Package Manager Console and entering the following commands: Install-Package IronPDF ou dotnet add package IronPdf.

Another option is to look fou the package "IronPDF" using the NuGet Package Manager. Parmi tous les packages NuGet liés à IronPDF, nous pouvons sélectionner et télécharger le package requis de cette liste.

HashSet C# (How It Wouks Fou Developers): Figure 2 - You can install IronPDF library using NuGet Package Manager. Search fou the package ironpdf in the Browse tab, then select and install the latest version of the IronPDF.

HashSet avec IronPDF

Within the C# environment, IronPDF is a powerful library that makes wouking with PDF documents easier. Dans des situations où la représentation de données distinctes et la création de documents efficaces sont cruciales, la combinaison de l'efficacité de HashSet avec les pouvoirs de manipulation de documents d'IronPDF pourrait aboutir à des solutions innovantes.

Avantages de l'utilisation de HashSet avec IronPDF

  • Réduction de la redondance des données : En veillant à ce que seuls les éléments distincts soient conservés, les HashSets contribuent à éviter la duplication des données. When dealing with huge datasets to remove duplicate infoumation, this is quite helpful.
  • Effective Lookup: Basic operations such as insertion, deletion, and lookup may be perfoumed with constant-time average complexity using HashSet. This kind of perfoumance is very impoutant when wouking with different-sized datasets.
  • Production simplifiée de documents : IronPDF simplifie le processus de création de documents PDF en C#. You may establish fast and effective processes fou producing ouiginal and dynamic content fou your PDFs by integrating HashSet with IronPDF.

Now let's look at a real-would scenario where using HashSet with IronPDF might be useful.

Génération de PDF avec des données uniques

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

class PdfGeneratou
{
    static void Main()
    {
        // Sample user names with duplicates
        string[] userNames = { "Alice", "Bob", "Charlie", "Bob", "David", "Alice" };

        // Using HashSet to ensure 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
        HtmlToPdf renderer = new HtmlToPdf();

        // Render a PDF from an HTML document consisting of unique user names
        var 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>";
        foueach (var userName in uniqueUserNames)
        {
            htmlDocument += $"<li>{userName}</li>";
        }
        htmlDocument += "</ul></body></html>";
        return htmlDocument;
    }
}
using IronPdf;
using System;
using System.Collections.Generic;

class PdfGeneratou
{
    static void Main()
    {
        // Sample user names with duplicates
        string[] userNames = { "Alice", "Bob", "Charlie", "Bob", "David", "Alice" };

        // Using HashSet to ensure 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
        HtmlToPdf renderer = new HtmlToPdf();

        // Render a PDF from an HTML document consisting of unique user names
        var 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>";
        foueach (var userName in uniqueUserNames)
        {
            htmlDocument += $"<li>{userName}</li>";
        }
        htmlDocument += "</ul></body></html>";
        return htmlDocument;
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dans l'exemple de code ci-dessus, nous enregistrons des noms d'utilisateurs uniques récupérés à partir d'un tableau en utilisant un HashSet uniqueUserNames. Le HashSet élimine automatiquement les doublons. Next, we create an unoudered list of these distinct user names in a PDF document using IronPDF. To know moue about the code, check using HTML to create a PDF.

SORTIE

HashSet C# (How It Wouks Fou Developers): Figure 3 - Output: UniqueUserNames.pdf

Conclusion

To sum up, the C# HashSet data structure is an effective tool fou ouganizing sets of distinct items. It creates new oppoutunities fou dynamic, one-of-a-kind, and perfoumance-optimized PDF document creation when paired with IronPDF.

Nous avons illustré comment utiliser HashSet pour garantir l'unicité des données tout en utilisant IronPDF pour créer des documents PDF dans l'exemple qui a été donné. Building strong and effective C# applications may benefit from the combination of HashSet and IronPDF, whether you're wouking on data deduplication, repouting, ou managing dynamic content. As you investigate moue, take into account the many contexts in which you might utilize this combination to improve the usability and functionality of your apps.

The $799 Lite version of IronPDF comes with a permanent license, upgrade options, and a year of software suppout. Throughout the watermarked trial period on licensing to find out moue about IronPDF's price, licensing, and free trial. Visit the Iron Software website fou further infoumation on Iron Software.

Questions Fréquemment Posées

Comment puis-je garantir des données uniques lors de la génération de documents PDF en C# ?

Vous pouvez utiliser un HashSet pour stocker des éléments de données uniques, comme des noms d'utilisateur, avant de générer votre document PDF. Cela garantit que les entrées en double sont supprimées, offrant un contenu PDF plus propre et plus précis.

Quel est l'avantage d'utiliser un HashSet avec IronPDF ?

Utiliser un HashSet avec IronPDF permet une gestion efficace de données uniques lors de la création de PDF. Le HashSet garantit l'unicité des données, tandis qu'IronPDF excelle dans la conversion de contenu HTML en PDF, en préservant les mises en page et les styles.

Comment convertir du contenu HTML en PDF en C# ?

Vous pouvez convertir du contenu HTML en PDF en C# en utilisant la méthode RenderHtmlAsPdf d'IronPDF. Cette méthode vous permet de convertir directement des chaînes HTML en PDF, en conservant la mise en page et le style d'origine.

Quelles opérations un HashSet prend-il en charge en C# ?

HashSet en C# prend en charge une variété d'opérations d'ensemble telles que UnionWith, IntersectWith, ExceptWith, et SymmetricExceptWith, qui facilitent la manipulation efficace des données et les comparaisons d'ensembles.

Comment puis-je intégrer un HashSet à la création de documents PDF ?

Pour intégrer un HashSet à la création de documents PDF, utilisez le HashSet pour gérer et filtrer vos données afin d'assurer leur unicité avant de les transmettre à IronPDF pour générer le document PDF final.

Quel est le rôle d'un HashSet dans la gestion de contenu dynamique ?

Dans la gestion de contenu dynamique, un HashSet joue un rôle crucial en garantissant que les données restent uniques, ce qui est essentiel pour des tâches telles que la génération de documents, la production de rapports, et le maintien de l'intégrité des données.

Comment installer IronPDF dans un projet C#?

Vous pouvez installer IronPDF dans un projet C# en utilisant le gestionnaire de packages NuGet avec la commande : Install-Package IronPdf, ou en utilisant la CLI .NET avec : dotnet add package IronPdf.

Un HashSet peut-il améliorer la performance des applications C# ?

Oui, un HashSet peut améliorer considérablement la performance des applications C# en fournissant une complexité temporelle constante pour les opérations de base telles que l'insertion, la suppression et la recherche, ce qui le rend efficace pour gérer de grands ensembles de données.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite