Seguimos con los operadores de LinQ, ahora le toca el turno a los ‘Set Operators’ u Operadores
de Conjunto.
Los operadores de conjunto, nos permiten realizar
actuaciones sobre dos secuencias (IEnumerable<T>)
del mismo tipo de datos, dando como resultado una colección de este mismo tipo.
Todas y cada una de sus ejecuciones se realizan de forma diferida
o perezosa.
En caso de que alguna de estas colecciones sea null en el
momento de realizar la llamada, el compilador lanzará un ArgumentNullException.
Vamos a detallar cada uno de sus operadores, para intentar
que todo esto quede un poco más claro, haré un par de ejemplos para cada
operador, uno con datos simples, colecciones de tipo int, y otro con una de las clases más utilizada en nuestros
ejemplos y que tiene su definición en los post anteriores, el tipo Automovil. El objetivo es
comprender lo imprescindible, que es el uso de las sobrecargas que admiten un
comparador de tipo IEQualityComparer<T> para los tipos compuestos, en el que indicaremos al
compilador como queremos que se diferencien 2 objetos de este tipo.
Como en todas las reglas, hay una excepción y esta no iba a
ser menos. El operador Distinct,
cambiará, para utilizar una única colección en decremento de dos, pero eso
lo contaremos un poquito más adelante.