微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类. .NET Collection 函数库的 HashSet、SortedSet 这两个泛型的类,都实现了 System.Collections.Generic.ISet 接口.
参见如下示例:
var set = new HashSet<int>() { 5, 9, 2, 1, 2, 2, 3, 7, 4, 9, 9 }; 执行结果:
同样的代码,把 HashSet 改成 SortedSet,如下: var set = new SortedSet<int>() { 5, 9, 2, 1, 2, 2, 3, 7, 4, 9, 9 }; 执行结果:
|
说明:
-
HashSet和SortSet主要的作用是用来进行,两个集合求交集、并集、差集等运算.集合中包含一组不重复出现且无特性顺序的元素。前者不会自动排序,后者会加入元素后,自动排序。
-
两者都无法从特定位置访问其中某个元素。
-
可以使用其查找功能:
Set.Contains("value"); 返回true或false。
-
对集合做操作:
-
SymmetricExceptWith: 仅包含该对象或指定集合中存在的元素(但不可同时包含两者中的元素)。去除交集,剩下两个集合元素
-
UnionWith: 包含该对象本身和指定集合中存在的所有元素。并集
-
ExceptWith: 从当前 HashSet<T> 对象中移除指定集合中的所有元素。差集
-
IntersectWith: 仅包含该对象和指定集合中存在的元素。交集
5.SortedSet对象,可以调用GetViewBetween、Max、Min 方法。
6.除了SortedSet外,System.Collections.Generic命名空间下,还提供了SortedDictionary和SortedList两个类。