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