Llegado a este punto, vamos a hacer un pequeño parón dentro
de los operadores de consulta, para centrarnos en una interface muy útil dentro de la comparación de nuestros
objetos, y que bajo mi opinión, mucha gente no le da la importancia que
realmente tiene, hasta llegar al punto de que muchos autores ni siquiera le
dediquen una línea dentro de libros dedicados por entero a LinQ.
En
pocas palabras, la interface IEqualityComparer<T>,
nos permite especificar nuestra propia clave de comparación, sin que para ello
tengamos que redefinir ninguno de los métodos iniciales de la clase Object. Esto nos ofrece una
versatilidad gigante, ya que podemos crear todos los que queramos según
nuestras necesidades y nuestro modo de operar. Veremos que esto será clave en
el uso de operadores como Group By,
Distinct, Union, Intersect,
etc.