.Net3.5之后出现了HashSet<T>,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet<T>和Dictionary<TKey,TValue>使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary<TKey,TValue>和Hashtable在使用上到底有什么不同?
HashSet<T>对集合运算的操作
HashSet<T>是一个Set集合,虽然List、Collection也叫集合,但Set集合和它们却大有不同。
HashSet<T>提供了和“Set集合运算”相关的方法,如:
IntersectWith (IEnumerable<T> other) (交集)
public void IntersectWithTest() { HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 }; HashSet<int> set2 = new HashSet<int>() { 2, 3, 4 }; set1.IntersectWith(set2); foreach (var item in set1) { Console.WriteLine(item); } //输出:2,3 }