天天看點

C# HashSet類常用函數 C# HashSet類常用函數

C# HashSet類常用函數

初始化

static HashSet<int> INT_HASHSET_1 = new HashSet<int>()
            {
                1,2,3,4,5
            };
        static HashSet<int> INT_HASHSET_2 = new HashSet<int>()
            {
                2,4,6,8,10
            };
           

bool Add(T item)

如果該元素添加到 System.Collections.Generic.HashSet<T> 對象中則為 true;如果該元素已存在則為 false。

bool isHave5 = INT_HASHSET_1.Add(5);
            bool isHave6 = INT_HASHSET_1.Add(6);
            Console.WriteLine("isHave5 = " + isHave5 + "isHave6 = "+ isHave6);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

bool Remove(T item)

從 System.Collections.Generic.HashSet<T> 對象中移除某個元素。

bool isRemove5 = INT_HASHSET_1.Remove(5);
            bool isRemove6 = INT_HASHSET_1.Remove(6);
            Console.WriteLine("isRemove5 = " + isRemove5 + "isRemove6 = " + isRemove6);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void Clear()

從 System.Collections.Generic.HashSet<T> 對象中移除所有元素。

INT_HASHSET_1.Clear();
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           

控制台無輸出

bool Contains(T item)

如果 System.Collections.Generic.HashSet<T> 對象包含指定的元素,則為 true;否則為 false

bool isHave5 = INT_HASHSET_1.Contains(5);
            Console.WriteLine("isHave5 = " + isHave5);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           

控制台輸出 : isHave5 = Ture

 void CopyTo(T[] array)

作為從 System.Collections.Generic.HashSet<T> 對象複制的元素的目标的一維數組。 該數組的索引必須從零開始。

int[] copyArray = new int[INT_HASHSET_1.Count];
            INT_HASHSET_1.CopyTo(copyArray);
            foreach (var team in copyArray)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void CopyTo(T[] array, int arrayIndex)

從指定數組索引處開始,将 System.Collections.Generic.HashSet<T> 對象的元素複制到數組中。

int index = 2;
            int[] copyArray = new int[INT_HASHSET_1.Count + index];
            INT_HASHSET_1.CopyTo(copyArray, index);
            foreach (var team in copyArray)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void CopyTo(T[] array, int arrayIndex, int count)

從指定數組索引處開始,将 System.Collections.Generic.HashSet<T> 對象的指定數目的元素複制到數組中。

int index = 2, length = 3;
            int[] copyArray = new int[INT_HASHSET_1.Count];
            INT_HASHSET_1.CopyTo(copyArray, index, length);
            foreach (var team in copyArray)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void UnionWith(IEnumerable<T> other)

A.UnionWith(B)  傳回兩個集合的合集  修改  A 為A B合集運算後的集合

INT_HASHSET_1.UnionWith(INT_HASHSET_2);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void IntersectWith(IEnumerable<T> other)

A.IntersectWith(B)  傳回兩個集合的交集  修改  A 為A B交集運算後的集合

INT_HASHSET_1.IntersectWith(INT_HASHSET_2);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

void ExceptWith(IEnumerable<T> other)

A.ExceptWith(B)  傳回兩個集合的差集  修改  A 為A B差集運算後的集合

INT_HASHSET_1.ExceptWith(INT_HASHSET_2);
            foreach (var team in INT_HASHSET_1)
            {
                Console.WriteLine(team);
            }
           
C# HashSet類常用函數 C# HashSet類常用函數

 bool Overlaps(IEnumerable<T> other)

Overlaps 對象和指定的集合是否共享常見元素(隻要包含其中一個即傳回true)。

HashSet<int> INT_HASHSET_3 = new HashSet<int>()
                {
                    1,10
                };
            bool isOverlaps = INT_HASHSET_1.Overlaps(INT_HASHSET_3);
            Console.WriteLine("isOverlaps = " + isOverlaps);
           

控制台輸出 :isOverlaps = True