在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
C# 编程非常灵活,提供了大量数据结构,可有效管理各种工作。 "(《世界人权宣言》)哈希集合例如,.NET、Java、Python 或 Node js 就是这样一种强大的数据结构,它提供了独特的组件和基本操作的恒定时间平均复杂度。 本篇文章将探讨 HashSet 在 C# 中的使用,以及如何将其与IronPDF是一个功能强大的用于处理 PDF 文档的库。
创建一个新的控制台应用程序项目。
在 C# 中为 HashSet 创建一个对象。 向 HashSet 添加默认值。
在添加时,HashSet 会通过检查元素是否存在来自动删除重复的元素。
逐一处理 HashSet 中唯一的元素。
C# 中的 HashSet 旨在提供高性能的集合操作。 当您需要保留一组不同的数据时,HashSet 是一个完美的集合,因为它可以防止元素重复。 它包含在 System.Assortments.Hash 表中,是 C# 通用命名空间的基础,可提供快速插入、删除、更快检索和查找操作。 我们还可以在 HashSet 元素中找到适当的子集。 在 C# 中,使用 HashSet 集合操作方法可让您轻松执行标准集合操作。 HashSet 类提供了集合操作方法。
以下是 HashSet 的几种 C# 用途:
建立 HashSet 并执行基本操作,如追加、删除和验证条目的存在。
// 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)
使用现有的集合作为 HashSet 的起点,可以立即消除重复。
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)
使用 UnionWith 函数合并两个 HashSet 实例以生成一个新集,该新集合并了两个集中的不同项。
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 }
使用 IntersectWith 函数,确定两个 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 }
使用 ExceptWith 函数,查找在一个 HashSet 中但不在另一个 HashSet 中的元素。
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 }
检查子集或超集:
使用 IsSubsetOf 和 IsSupersetOf 方法,可以确定给定的 HashSet 实例是另一个实例的子集还是超集。
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
使用 SymmetricExceptWith 技术,确定对称差异(元素在一组中存在,但在两组中都不存在).
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 }
程序员可以使用 C# 语言制作、编辑和修改 PDF 文档,方法是利用IronPDF for .NET 库. 该应用程序提供多种工具和功能,可对 PDF 文件进行不同操作,包括从 HTML 创建新的 PDF、将 HTML 转换为 PDF、合并或分割 PDF 文档,以及用文本、照片和其他数据对现有 PDF 进行注释。 要了解有关 IronPDF 的更多信息,请参阅官方文档.
获取 IronPDF 库; 即将发布的补丁需要翻译。 为此,请在软件包管理器中输入以下代码:
Install-Package IronPDF
//or
dotnet add package IronPdf
另一种方法是使用 NuGet 软件包管理器查找软件包 "IronPDF"。 从所有与 IronPdf 相关的 NuGet 软件包中,我们可以从该列表中选择并下载所需的软件包。
在 C# 环境中,IronPdf 是一个功能强大的库,可以让 PDF 文档的处理变得更加简单。 在对独特的数据表示和有效的文档创建至关重要的情况下,将 HashSet 的效率与 IronPDF 的文档操作能力相结合,可能会产生创造性的解决方案。
简化文档制作:IronPDF 简化了 C# PDF 文档创建流程。 通过将 HashSet 与 IronPDF 集成,您可以建立快速有效的流程,为 PDF 制作原创的动态内容。
现在,让我们看看在现实世界中使用 IronPDF 的 HashSet 可能会有什么用处。
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
在上述代码示例中,我们使用 HashSet uniqueUserNames 保存从数组中获取的唯一用户名。 HashSet 可自动消除重复内容。 接下来,我们使用 IronPDF 在 PDF 文档中创建这些不同用户名的无序列表。 要了解有关代码的更多信息,请查看使用 HTML 创建 PDF.
总而言之,C# HashSet 数据结构是组织不同项目集的有效工具。 与 IronPDF 搭配使用时,它为动态、独一无二和性能优化的 PDF 文档创建创造了新的机会。
我们说明了如何使用 HashSet 来保证数据的唯一性,同时使用IronPDF以创建 PDF 文档为例。 构建强大有效的 C# 应用程序可能会从 HashSet 和 IronPDF 的组合中受益,无论您是从事重复数据删除、报告还是管理动态内容。 在您进行更多调查时,请考虑到您可能会在许多情况下使用这种组合来提高应用程序的可用性和功能。
$749 Lite 版本的 IronPDF 附带永久许可证、升级选项和一年的软件支持。 整个水印许可试用期了解有关 IronPdf 价格、许可和免费试用的更多信息。 访问Iron 软件网站了解有关 Iron 软件的更多信息。