HashSet .NET Framework 3.5中引入了C#HashSet数据结构。可以在HashSet MSDN页面上找到已实现成员的完整列表。
A可以HashSet容纳一组对象,但是可以让您轻松快速地确定对象是否已在该组中。它是通过内部管理数组并使用从对象的哈希码计算出的索引来存储对象来实现的。在这里看看
HashSet
HashSet是包含唯一元素的无序集合。它具有标准的收集,添加,删除,包含操作,但是由于它使用基于哈希的实现,因此这些操作为O(1)。(例如,与List相反,对于Contains和Remove,它是O(n)。)HashSet还提供了标准的集合操作,例如 union , intersection 和 对称差分 。在这里看看
集合有不同的实现。有些通过散列元素使插入和查找操作变得超级快。但是,这意味着添加元素的顺序丢失了。其他实现保留了增加的顺序,但代价是运行时间较慢。
HashSetC#中的类采用第一种方法,因此 不 保留元素的顺序。它比常规的要快得多List。一些基本的基准测试表明,在处理主要类型(int,double,bool等)时,HashSet的速度更快。使用类对象时,它快得多。这就是说HashSet很快。
List
唯一HashSet要注意的是索引无法访问。要访问元素,您可以使用枚举器,也可以使用内置函数将转换HashSet为,List然后进行迭代。在这里看看