HashSet.ExceptWith(IEnumerable) C# 中的方法

17 Mar 2025 | 4 分钟阅读

在本文中,我们将讨论 C# 中的 HashSet<T>.ExceptWith(IEnumerable<T>) 方法及其语法和示例。

什么是 HashSet<T>.ExceptWith(IEnumerable<T>) 方法?

ExceptWith() 方法广泛用于通过移除其他集合中的所有元素来修改 HashSet<T> 对象。此方法相当于数学上的集合减法。此方法的时间复杂度为 大 O(n),其中 n 是其他指定集合中存在的元素总数。此方法将获取两个集合中的相同元素,并将结果赋值给原始集合。

例如,有两个相同类型的 HashSet。假设它们都是整数数据类型。第一个 HashSet 是 HashSet1,另一个 HashSet 是 HashSet2。之后,我们通过将 HashSet2 作为其他参数对 HashSet1 使用 ExceptWith 方法。两个 HashSet 中的元素都从 HashSet1 中移除。

语法

它具有以下语法:

在这里,其他参数将表示其元素将从当前 HashSet<T> 中移除的集合。此方法是一个 void 函数,因此它不会返回任何内容,但它会更改当前的 HashSet 对象。它是执行集合差集操作的最有效方法。

示例

让我们举一个程序来演示 ExceptWith() 方法在 C# 中与 HashSet 一起使用时的作用。

输出

HashSet<T>.ExceptWith(IEnumerable<T>) method in C#

说明

此程序演示了 ExceptWith() 方法与 HashSet 一起使用时的作用。在此示例中,两个 HashSet 用一些元素初始化,分别命名为 hashSet1hashSet2。之后,在 hashSet1 上调用 ExceptWith() 方法,并将 hashSet2 作为参数传递。此方法从 hashSet1 中移除了两个 HashSet 中的共同元素。之后,使用 foreach 循环打印更新后的 hashSet1。

示例 2

让我们举一个 C# 程序来演示 ExceptWith() 方法在小型现实事件中的使用。

输出

HashSet<T>.ExceptWith(IEnumerable<T>) method in C#

说明

在此示例中,我们使用一个简单的日常示例,其中使用了 ExceptWith 方法。此程序包含 allStudentsprizeWinners HashSet。allStudents HashSet 包含参加科学博览会的所有学生的名字。prizeWinners HashSet 包含在科学博览会中获奖的学生的名字。如果问题是找出参加科学博览会但没有获奖的学生,我们可以使用 ExceptWith 方法。它将给出参加科学博览会但没有获奖的学生。

示例 3

让我们举另一个 C# 程序,其中 List 被作为 ExceptWith() 方法的另一个参数。

输出

HashSet<T>.ExceptWith(IEnumerable<T>) method in C#

说明

在此程序中,首先初始化 shoppingCart 以表示购物车,然后初始化一个列表以表示应从当前购物车中移除的商品。通常,ExceptWith 方法用于移除共同元素。之后,使用循环显示更新后购物车中的商品。