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&lt;T&gt;

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&lt;T&gt; 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

UnionWith

Union

IntersectWith

Intersect

ExceptWith

Except

Não Fornecido

Distinct

SymmetricExceptWith

Não Fornecido

Overlaps

Não Fornecido

IsSubsetOf

Não Fornecido

IsProperSubsetOf

Não Fornecido

IsSupersetOf

Não Fornecido

IsProperSupersetOf

Não Fornecido

SetEquals

Não Fornecido

Consulte também

Conceitos

Coleção do Tipo HashSet

Definir operações

Referência

HashSet<T>

Outros recursos

Language-Integrated Query (LINQ)

Tipos de Coleção Comumente Usadas