HashSet<T>類主要是設計用來做高性能集運算的,例如對兩個集合求交集、並集、差集等。集合中包含一組不重復出現且無特性順序的元素。
HashSet<T>的一些特性如下:
1、HashSet<T>中的值不能重復且沒有順序。
2、HashSet<T>的容量會按需自動添加。
構造方法:
HashSet() 默認相等比較器創建一個空的新實例。
HashSet(IEnumerable<T> collection) 把指定集合中的collection中的數據復制到集中
HashSet(IEqualityComparer<T> comparer) 使用指定的相等比較器創建一個空的新實例
HashSet(IEnumerable<T> collection,IEqualityComparer<T> comparer) 使用指定的比較器實例化數據,且將指定集合中的元素復制到集合中。
因為HashSet<T>是專門設計來做集合運算的,因此它提供的方法中有不少是和集合運算相關的。
以下給出它的一些常用方法介紹
成員 類型 說明
Add 方法 將指定的元素添加到集合中
Clear 方法 清空集合中的所有元素
Contains 方法 確定某元素是否在HashSet<T>中
Exists 方法 確定HashSet<T>是否包含於指定條件相匹配的元素
ExceptWith 方法 從當前HashSet<T>移除指定集合中的所有元素
IntersectWith 方法 修改當前的HashSet<T>對象,以僅包含該對象和指定集合中存在的元素
IsProperSubsetOf 方法 確定HashSet<T>對象是否為指定集合的真子集
IsProperSupersetOf 方法 確定HashSet<T>對象是否為指定集合的真超集
IsSunsetOf 方法 確定HashSet<T>對象是否為指定集合的子集
IsSupersetOf 方法 確定HashSet<T>對象是否為指定集合的超集
Remove 方法 從HashSet<T>對象中移除指定的元素
RemoveWhere 方法 從HashSet<T>集合中移除與指定謂詞所定義的條件相匹配的所有元素
SetEquals 方法 確定HashSet<T>對象與指定的集合中是否包含相同的元素
SynmmetricExceptWith 方法 修改當前的HashSet<T>對象,以僅包含該對象或指定集合中存在的元素
TrimExcess 方法 將HashSet<T>對象的容量設置為它所包含的元素的實際個數,向上舍入為接近的特性與實現的值。
UnionWith 方法 修改當前的HashSet<T>對象,以包含該對象本身和指定集合中存在的所有元素
給個簡單的例子,寫不完的,總之記得HashSet<T>主要的作用是用來進行,交集、並集等運算的就OK了。
static void Main(string[] args) { HashSet<string> hs = new HashSet<string>(); hs.Add("你"); hs.Add("好"); hs.Add("嗎"); HashSet<string> hs1 = new HashSet<string>(); hs1.Add("你"); hs1.Add("好"); bool b = hs1.IsProperSubsetOf(hs); //確定hs1是否是hs的真子集 Console.WriteLine(b); //輸出True HashSet<string> hs2 = new HashSet<string>(); hs2.Add("愛你"); IEnumerable<string> list = hs.Union(hs2); //返回並集 foreach (string str in list) { Console.WriteLine(str); //輸出 你 好 嗎 愛你 } Console.ReadKey(); }