微軟在 .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兩個類。


