Skip to main content

HashSet<T> Class

NuGet: GHIElectronics.TinyCLR.Collections
Assembly: GHIElectronics.TinyCLR.Collections
Namespace: System.Collections.Generic

Hash-table-based generic set. Mirrors the .NET BCL surface for the subset we ship. Same chained-collision layout and prime-table sizing as Dictionary{TKey, TValue}; the entry holds the element directly instead of a key/value pair. null IS a valid element when T is a reference type — the comparer (EqualityComparer{T}.Default) treats null consistently (GetHashCode(null) = 0, Equals(null, null) = true).

public class HashSet<T> : ISet<T>, ICollection<T>, IEnumerable<T>, ICollection, IEnumerable

Constructors​

HashSet()​

public HashSet() : this(0, null)

Initializes a new empty set that uses the default equality comparer.

HashSet(IEqualityComparer<T> comparer)​

public HashSet(IEqualityComparer<T> comparer) : this(0, comparer)

Initializes a new empty set that uses the specified equality comparer.

HashSet(int capacity)​

public HashSet(int capacity) : this(capacity, null)

Initializes a new empty set with the specified initial capacity.

HashSet(int capacity, IEqualityComparer<T> comparer)​

public HashSet(int capacity, IEqualityComparer<T> comparer)

Initializes a new empty set with the specified initial capacity and equality comparer.

HashSet(IEnumerable<T> collection)​

public HashSet(IEnumerable<T> collection) : this(collection, null)

Initializes a new set that contains the elements copied from the specified collection.

HashSet(IEnumerable<T> collection, IEqualityComparer<T> comparer)​

public HashSet(IEnumerable<T> collection, IEqualityComparer<T> comparer) : this(0, comparer)

Initializes a new set that contains the elements copied from the specified collection and uses the specified equality comparer.

Properties​

Comparer​

public IEqualityComparer<T> Comparer { get; }

Gets the equality comparer used to determine equality of elements in the set.

Count​

public int Count { get; }

Gets the number of elements contained in the set.

Methods​

Add(T item)​

public bool Add(T item)

Adds the specified element to the set and returns whether it was newly added.

Returns bool

Clear()​

public void Clear()

Removes all elements from the set.

Contains(T item)​

public bool Contains(T item)

Determines whether the set contains the specified element.

Returns bool

Remove(T item)​

public bool Remove(T item)

Removes the specified element from the set and returns whether it was found and removed.

Returns bool

RemoveWhere(Predicate<T> match)​

public int RemoveWhere(Predicate<T> match)

Removes all elements that match the conditions defined by the specified predicate and returns the number removed.

Returns int

TryGetValue(T equalValue, out T actualValue)​

public bool TryGetValue(T equalValue, out T actualValue)

Searches the set for the element that equals the specified value and returns whether it was found.

Returns bool

CopyTo(T[] array)​

public void CopyTo(T[] array)

Copies the elements of the set to the specified array.

CopyTo(T[] array, int arrayIndex)​

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

Copies the elements of the set to the specified array, starting at the specified array index.

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

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

Copies the specified number of elements of the set to the specified array, starting at the specified array index.

UnionWith(IEnumerable<T> other)​

public void UnionWith(IEnumerable<T> other)

Modifies the set to contain all elements that are present in itself, the specified collection, or both.

IntersectWith(IEnumerable<T> other)​

public void IntersectWith(IEnumerable<T> other)

Modifies the set to contain only elements that are also present in the specified collection.

ExceptWith(IEnumerable<T> other)​

public void ExceptWith(IEnumerable<T> other)

Removes all elements in the specified collection from the set.

SymmetricExceptWith(IEnumerable<T> other)​

public void SymmetricExceptWith(IEnumerable<T> other)

Modifies the set to contain only elements that are present either in itself or in the specified collection, but not both.

IsSubsetOf(IEnumerable<T> other)​

public bool IsSubsetOf(IEnumerable<T> other)

Determines whether the set is a subset of the specified collection.

Returns bool

IsProperSubsetOf(IEnumerable<T> other)​

public bool IsProperSubsetOf(IEnumerable<T> other)

Determines whether the set is a proper subset of the specified collection.

Returns bool

IsSupersetOf(IEnumerable<T> other)​

public bool IsSupersetOf(IEnumerable<T> other)

Determines whether the set is a superset of the specified collection.

Returns bool

IsProperSupersetOf(IEnumerable<T> other)​

public bool IsProperSupersetOf(IEnumerable<T> other)

Determines whether the set is a proper superset of the specified collection.

Returns bool

Overlaps(IEnumerable<T> other)​

public bool Overlaps(IEnumerable<T> other)

Determines whether the set and the specified collection share any common elements.

Returns bool

SetEquals(IEnumerable<T> other)​

public bool SetEquals(IEnumerable<T> other)

Determines whether the set and the specified collection contain the same elements.

Returns bool

GetEnumerator()​

public Enumerator GetEnumerator()

Returns an enumerator that iterates through the set.

Returns Enumerator