📌  相关文章
📜  C#|检查HashSet和指定的集合是否共享公共元素(1)

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

C# | 检查 HashSet 和指定的集合是否共享公共元素

在 C# 中,HashSet 是一种集合类型,它可以高效地用于存储和查询元素。有时候,我们需要检查两个集合是否有重叠的元素。本文将介绍如何使用 C# 中的 HashSet 类型来检查两个集合是否共享公共元素。

使用 HashSet 检查公共元素

首先,我们需要创建两个 HashSet 类型的集合对象。我们可以使用 HashSet 的构造函数来创建一个空的 HashSet。例如,下面的代码会创建两个空的 HashSet

var set1 = new HashSet<int>();
var set2 = new HashSet<int>();

现在,我们可以向这两个集合中添加元素。我们可以使用 Add 方法将元素添加到 HashSet 中,如下所示:

set1.Add(1);
set1.Add(2);
set1.Add(3);

set2.Add(3);
set2.Add(4);
set2.Add(5);

现在,我们已经创建了两个集合,并向它们中添加了一些元素。接下来,我们需要检查这两个集合中是否存在公共元素。为此,我们可以使用 IntersectWith 方法和 Count 属性:

set1.IntersectWith(set2);
bool hasCommonElements = set1.Count > 0;

上面的代码会使用 IntersectWith 方法获取两个集合中共同的元素。结果会存储在 set1 中。然后,我们检查 set1 的元素个数是否大于 0。如果 set1.Count > 0,则说明存在公共元素。

示例

下面是一个完整的示例,演示了如何使用 HashSet 来检查两个集合是否共享公共元素:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var set1 = new HashSet<int>();
        var set2 = new HashSet<int>();

        set1.Add(1);
        set1.Add(2);
        set1.Add(3);

        set2.Add(3);
        set2.Add(4);
        set2.Add(5);

        set1.IntersectWith(set2);
        bool hasCommonElements = set1.Count > 0;

        Console.WriteLine(hasCommonElements);
    }
}

运行上述代码,输出结果为 True,说明集合 set1set2 存在公共元素 3