Tipo di raccolta HashSet
La classe HashSet<T> è una raccolta di insiemi che implementa l'interfaccia ICollection e l'interfaccia generica ICollection<T>.
A partire da .NET Framework versione 4, la classe HashSet<T> implementa la classe ISet<T>.
Raccolte di insiemi
In matematica, un insieme è una raccolta di oggetti distinti definito generalmente da una regola che determina se un elemento è membro di un particolare insieme. Ad esempio, un insieme potrebbe essere definito per contenere "tutti i numeri dispari compresi tra 1 e 21" o i numeri "1, 3, 5 e 7".
Classe HashSet
La classe HashSet<T> è basata sul modello di insiemi matematici e fornisce operazioni sugli insiemi ad alte prestazioni simili all'accesso alle chiavi delle raccolte Dictionary<TKey, TValue> o Hashtable. In altre parole, la classe HashSet<T> può essere considerata come una raccolta Dictionary<TKey, TValue> senza valori.
La raccolta HashSet<T> non è ordinata e non può contenere elementi duplicati. Se l'ordinamento o la duplicazione degli elementi è più importante delle prestazioni dell'applicazione, utilizzare la classe List<T> insieme al metodo Sort.
HashSet<T> fornisce molte operazioni matematiche sugli insiemi, ad esempio somma di insiemi (unioni) e differenza di insiemi. Nella tabella riportata di seguito vengono illustrate le operazioni HashSet<T> fornite e i relativi equivalenti matematici.
Operazione HashSet(Of T) |
Equivalente matematico |
---|---|
Unione o somma di insiemi |
|
Intersezione |
|
Differenza di insiemi |
|
Differenza simmetrica |
Oltre alle operazioni sugli insiemi riportate, la classe HashSet<T> fornisce anche i metodi per determinare l'uguaglianza tra insiemi, la sovrapposizione di insiemi e se un insieme è un sottoinsieme o un sovrainsieme di un altro insieme.