HashSet


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();
        }

 

 

 

 

 

 

 

 

 


免責聲明!

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



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