HashSet Collection Type
The HashSet<T> class is a set collection that implements the ICollection interface and the ICollection<T> generic interface.
Starting with the .NET Framework 4, the HashSet<T> class implements the ISet<T> class.
The HashSet<T> class is based on the model of mathematical sets and provides highperformance set operations similar to accessing the keys of the Dictionary<TKey, TValue> or Hashtable collections. In simple terms, the HashSet<T> class can be thought of as a Dictionary<TKey, TValue> collection without values.
A HashSet<T> collection is not sorted and cannot contain duplicate elements. If order or element duplication is more important than performance for your application, consider using the List<T> class together with the Sort method.
HashSet<T> provides many mathematical set operations, such as set addition (unions) and set subtraction. The following table lists the provided HashSet<T> operations and their mathematical equivalents.
HashSet(Of T) operation 
Mathematical equivalent 

Union or set addition 

Intersection 

Set subtraction 

Symmetric difference 
In addition to the listed set operations, the HashSet<T> class also provides methods for determining set equality, overlap of sets, and whether a set is a subset or superset of another set.