HashSet和SortSet對比--c#學習筆記


 

微軟在 .NET 3.5 新增了一個 HashSet 類,在 .NET 4 新增了一個 SortedSet 類. .NET Collection 函數庫的 HashSet、SortedSet 這兩個泛型的類,都實現了 System.Collections.Generic.ISet 接口.

參見如下示例:

var set = new HashSet<int>() { 59212237499 };
foreach (int element in set)
    Response.Write(string.Format(" {0}", element)); 

執行結果:


圖 1 重復的元素自動被移除

同樣的代碼,把 HashSet 改成 SortedSet,如下:

var set = new SortedSet<int>() { 59212237499 };
foreach (int element in set)
    Response.Write(string.Format(" {0}", element)); 

執行結果:


圖 2 重復的元素自動被移除,且內部會自動做排序

說明:

  1. HashSet和SortSet主要的作用是用來進行,兩個集合求交集、並集、差集等運算.集合中包含一組不重復出現且無特性順序的元素。前者不會自動排序,后者會加入元素后,自動排序
  2. 兩者都無法從特定位置訪問其中某個元素。
  3. 可以使用其查找功能:

    Set.Contains("value"); 返回true或false。

  4. 對集合做操作:
  • SymmetricExceptWith: 僅包含該對象或指定集合中存在的元素(但不可同時包含兩者中的元素)。去除交集,剩下兩個集合元素
  • UnionWith: 包含該對象本身和指定集合中存在的所有元素。並集
  • ExceptWith: 從當前 HashSet<T> 對象中移除指定集合中的所有元素。差集
  • IntersectWith: 僅包含該對象和指定集合中存在的元素。交集

     5.SortedSet對象,可以調用GetViewBetween、Max、Min 方法。

     6.除了SortedSet外,System.Collections.Generic命名空間下,還提供了SortedDictionarySortedList兩個類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM