Operações de Conjuntos HashSet e LINQ
Este tópico compara as operações de HashSet<T> e as operações de conjuntos de LINQ (Language-Integrated Query).
Operações de Conjunto LINQ
LINQ fornece acesso a algumas operações de conjuntos em qualquer fonte de dados que implemente as interfaces IEnumerable ou IQueryable.Isso inclui matrizes e coleções.
As operações de conjunto que LINQ fornece são as seguintes:
Distinto
União
Intersecção
Exceto
Para obter mais informações sobre o LINQ, consulte Language-Integrated Query (LINQ).Para obter mais informações sobre as operações de conjunto do LINQ, consulte Definir operações.
Quando utilizar HashSet<T>
A principal diferença entre as operações de conjunto LINQ e HashSet<T> operações é que as operações de conjunto LINQ sempre retornam um novo IEnumerable<T> coleção, enquanto o HashSet<T> métodos equivalentes modificam a coleção corrente. HashSet<T> Fornece um conjunto maior e mais robusto de conjunto de operações. Por exemplo, HashSet<T> fornece comparações como IsSubsetOf e IsSupersetOf.
Normalmente, se você deve criar um novo conjunto ou se seu aplicativo precisa acessar apenas as operações de conjunto fornecidas, usar as operações de conjunto do LINQ em qualquer coleção IEnumerable<T> ou matriz será suficiente.No entanto, se seu aplicativo requer acesso a operações de conjunto adicionais, ou não é desejável ou necessária a criação de uma nova coleção, utilize a classe HashSet<T>.
Operações de Conjunto HashSet<T> e LINQ
A tabela a seguir mostra as operações HashSet<T> e as operações de conjunto equivalentes do LINQ.
Operação HashSet (De T) |
Equivalente em LINQ |
---|---|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |
|
Não Fornecido |