在软件开发中,数据结构的选择对于程序的性能和可维护性至关重要。HashSet是一种常用的数据结构,它能够存储不重复的元素集合。这种特性在许多场景下都非常有用,比如在管理员工名单时,确保没有重复的员工被添加到名单中。虽然List
任何尝试在其应用程序中使用HashSet
让直接进入编码部分,开始实践。首先,创建一个控制台应用程序来探索HashSet。然后,将以下代码行放入其中:
HashSet<int> intSet = new HashSet<int>();
intSet.Add(1);
intSet.Add(2);
intSet.Add(3);
intSet.Add(2);
foreach (var item in intSet)
{
Console.WriteLine(item);
}
Console.ReadLine();
在上面的代码中,声明了一个HashSet
HashSet
var set1 = new HashSet<int> { 1, 2, 3 };
var set2 = new HashSet<int> { 2, 3, 4 };
set1.IntersectWith(set2);
foreach (var item in set1)
{
Console.WriteLine(item);
}
在上面的代码中,有两个集合,尝试找到它们之间的交集。运行这个程序,看看输出是什么。它应该是{ 2, 3 }。
var set1 = new HashSet<int> { 1, 2, 3 };
var set2 = new HashSet<int> { 2, 3, 4 };
set1.UnionWith(set2);
foreach (var item in set1)
{
Console.WriteLine(item);
}
使用UnionWith方法,可以得到两个集合的并集。上述程序的输出应该是{ 1, 2, 3, 4 }。
当添加具有相同属性的两个对象时,HashSet会不加区别地添加它们。
HashSet<Employee> set = new HashSet<Employee>();
set.Add(new Employee { Name = "Subha" });
set.Add(new Employee() { Name = "Subha" });
foreach (var item in set)
{
Console.WriteLine(item.Name);
}
在上述示例中,HashSet
HashSet<Employee> set = new HashSet<Employee>();
var employee = new Employee() { Name = "Subham" };
set.Add(employee);
set.Add(employee);
foreach (var item in set)
{
Console.WriteLine(item.Name);
}