(OBS: Este post é continuação do artigo LINQ Extensions)
Intersect: Produz a interseção de duas coleções, ou seja, retorna uma nova coleção contendo apenas elementos comuns das duas coleções comparadas.
// Intersect: Produz a interseção de duas coleções, ou seja,
// retorna uma nova coleção contendo apenas elementos
// comuns das duas coleções comparadas.
var queryIntersect = Pessoas.Intersect(OutrasPessoas);
foreach (var p in queryIntersect)
Console.WriteLine(p.Nome);
// Resultado no console: neste caso, Pessoas e OutrasPessoas não possuem
// elementos em comum, por isso o resultado é uma
// coleção com zero elementos
// Para exemplificar melhor podemos usar números
int[] numeros1 = { 4, 8, 15, 16, 23, 42 };
int[] numeros2 = { 3, 15, 31, 36, 42, 54 };
var numerosComuns = numeros1.Intersect(numeros2);
foreach (int numero in numerosComuns)
Console.WriteLine(numero);
// Resultado no console:
// 15
// 42



