HashSet Collection Type
The HashSet<T> class is a set collection that implements the ICollection interface and the ICollection<T> generic interface.
Set Collections
In mathematics, a set is a collection of distinct objects that is usually defined by a rule that determines whether an element is a member of a particular set. For example, a set could be defined to contain "all the odd numbers between 1 and 21" or the numbers "1, 3, 5 and 7".
The HashSet 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.
See Also
Concepts
HashSet and LINQ Set Operations