HashSet et LINQ, opérations ensemblistes
Cette rubrique compare les opérations HashSet<T> aux opérations ensemblistes LINQ (Language-Integrated Query).
Opérations ensemblistes LINQ
LINQ permet à quelques opérations ensemblistes d'accéder à une source de données quelconque qui implémente les interfaces IEnumerable ou IQueryable, notamment les tableaux et les collections.
Les opérations ensemblistes fournies par LINQ sont les suivantes :
Distinct
Union
Intersect
Except
Pour plus d'informations sur LINQ, consultez LINQ (Language-Integrated Query) et Parallel LINQ (PLINQ). Pour plus d'informations sur les opérations ensemblistes LINQ, consultez Opérations ensemblistes.
Quand utiliser HashSet <T>
La principale différence entre les opérations ensemblistes LINQ et les opérations HashSet<T> est que les opérations ensemblistes LINQ retournent toujours une nouvelle collection IEnumerable<T>, tandis que les méthodes équivalentes HashSet<T> modifient la collection actuelle. HashSet<T> fournit une collection plus grande et plus fiable d'opérations ensemblistes. Par exemple, HashSet<T> fournit des comparaisons, telles que IsSubsetOf et IsSupersetOf.
En général, si vous devez créer un ensemble ou si votre application n'a besoin d'accéder qu'aux opérations ensemblistes fournies, utilisez les opérations ensemblistes LINQ sur des collections ou des tableaux IEnumerable<T>. En revanche, si votre application doit accéder à des opérations ensemblistes supplémentaires ou si vous ne souhaitez/devez pas créer une nouvelle collection, faites appel à la classe HashSet<T>.
Opérations ensemblistes LINQ et HashSet <T>
Le tableau suivant affiche les opérations HashSet<T> et les opérations ensemblistes LINQ équivalentes.
Opération HashSet(Of T) |
Équivalent LINQ |
---|---|
Non fourni. |
|
Non fourni. |
|
Non fourni. |
|
Non fourni. |
|
Non fourni. |
|
Non fourni. |
|
Non fourni. |
|
Non fourni. |