HashSet 集合类型

HashSet<T> 类是一个实现 ICollection 接口和 ICollection<T> 泛型接口的 set 集合。

从 .NET Framework 4开始,HashSet<T> 类实现了 ISet<T> 类。

Set 集合

在数学中,set 是指通常由某一规则定义的不同对象的集合,其中规则用于确定一个元素是否属于某个特定的 set。 例如,一个 set 可以定义为包含“1 和 21 之间的所有奇数”或数字“1、3、5 和 7”。

HashSet 类

HashSet<T> 类基于数学 set 的模型,可提供类似于访问 Dictionary<TKey, TValue>Hashtable 集合的键的高性能 set 运算。 简而言之,可以将 HashSet<T> 类视为不包含值的 Dictionary<TKey, TValue> 集合。

HashSet<T> 集合没有排序,且不能包含重复的元素。 与性能相比,如果顺序或元素重复项对应用程序更为重要,请考虑结合使用 List<T> 类和 Sort 方法。

HashSet<T> 提供了多种数学 set 运算,例如 set 加法(并集)和 set 减法。 下表列出了所提供的 HashSet<T> 运算及其数学等效项。

HashSet(Of T) 运算

数学等效项

UnionWith

并集或 set 加法

IntersectWith

交集

ExceptWith

Set 减法

SymmetricExceptWith

余集

除了上面列出的 set 运算外,HashSet<T> 类还提供了一些方法,可用于确定两个 set 是否相等、是否重叠以及一个 set 是另一个 set 的子集还是超集。

请参见

参考

SortedSet<T>

ISet<T>

HashSet<T>

概念

HashSet 和 LINQ Set 运算

其他资源

常用的集合类型