📜  C#|两个HashSet的并集(1)

📅  最后修改于: 2023-12-03 15:30:17.285000             🧑  作者: Mango

C# | 两个HashSet的并集

在C#编程中,有时需要将两个集合合并为一个新集合。HashSet是C#中常用的集合类型之一,它是一个无序、不重复的集合。在本篇文章中,将介绍如何在C#中计算两个HashSet的并集。

使用UnionWith方法

HashSet类中提供了UnionWith方法,可用于计算两个HashSet的并集。该方法将指定的集合中的元素添加到当前HashSet中,确保不会有重复的元素。使用HashSet的UnionWith方法需要遵循以下步骤:

  1. 创1一个新的HashSet实例
  2. 使用UnionWith方法将两个HashSet集合进行合并
  3. 遍历合并后的HashSet

下面是一个示例代码:

HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5 };
HashSet<int> result = new HashSet<int>(set1);
result.UnionWith(set2);

foreach(int value in result)
{
  Console.Write(value + " ");
}

其中,第一行创建了一个包含1、2、3的HashSet,第二行创建了一个包含3、4、5的HashSet,第三行在一个新的HashSet中将set1中的元素复制。第四行是将set2中的元素添加到结果集result中,确保不重复。最后一行输出结果集。

使用Linq

除以上方法外,还有一种使用Linq的方法计算两个HashSet的并集:

HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5 };
HashSet<int> result = new HashSet<int>(set1.Concat(set2));

在这个代码中,使用Concat方法将两个HashSet连接在一起,创建一个新的Enumerable,并以此创建一个新的HashSet。

结论

HashSet提供了两个简单的方法来计算两个HashSet的并集,其中UnionWith方法比Linq方法稍微更加易于理解,但是,在某些情况下,特别是在需要对结果集进行更复杂的操作时,使用Linq方法可能更方便。