C#中的HashSet<T>
類提供了許多擴展功能,這些功能使得在處理集合時更加方便和高效。以下是一些主要的擴展功能:
初始化:
HashSet<T>.Empty
:提供一個空的HashSet<T>
實例。HashSet<T>(IEnumerable<T>)
:通過一個可枚舉的集合初始化HashSet<T>
。HashSet<T>(IEnumerable<T>, IEqualityComparer<T>)
:通過一個可枚舉的集合和一個自定義的相等性比較器初始化HashSet<T>
。集合操作:
Add(T item)
:向HashSet<T>
中添加一個元素。如果元素已存在,則不執行任何操作。Remove(T item)
:從HashSet<T>
中移除一個元素。如果元素不存在,則不執行任何操作。Clear()
:移除HashSet<T>
中的所有元素。Contains(T item)
:檢查HashSet<T>
中是否包含指定的元素。Count
:獲取HashSet<T>
中的元素數量。ToArray()
:將HashSet<T>
轉換為數組。ToList()
:將HashSet<T>
轉換為List<T>
。集合操作(擴展方法):
UnionWith(IEnumerable<T>)
:將另一個集合的元素添加到當前集合中,同時保留唯一性。IntersectWith(IEnumerable<T>)
:保留當前集合中與另一個集合共有的元素。ExceptWith(IEnumerable<T>)
:從當前集合中移除另一個集合的所有元素。SymmetricExceptWith(IEnumerable<T>)
:保留當前集合中與另一個集合共有的元素,并從第一個集合中移除第二個集合中的所有獨有元素。Overlaps(IEnumerable<T>)
:檢查當前集合是否與另一個集合有共同元素。SetEquals(IEnumerable<T>)
:檢查當前集合是否與另一個集合完全相同(包括順序)。性能優化:
HashSet<T>
在內部使用哈希表實現,因此提供了快速的插入、刪除和查找操作。HashSet<T>
自動處理重復元素,確保集合中每個元素都是唯一的。其他功能:
CopyTo(T[] array)
:將HashSet<T>
中的元素復制到指定的數組中。CopyTo(T[] array, int arrayIndex)
:將HashSet<T>
中的元素復制到指定的數組中,并從指定索引開始復制。Find(Predicate<T>)
:根據指定的謂詞查找HashSet<T>
中的元素。Exists(Predicate<T>)
:檢查HashSet<T>
中是否存在滿足指定謂詞的元素。這些擴展功能使得HashSet<T>
成為C#中處理集合的強大工具。