Estoy intentando implementar un comparador personalizado en dos listas de cadenas y usar el método .Except() linq para obtener aquellas que no son una de las listas. La razón por la que estoy haciendo un comparador personalizado es porque necesito hacer una comparación "difusa", es decir, una cadena en una lista podría estar incrustada dentro de una cadena en la otra lista.linq Excepto y personalizado IEqualityComparer
he hecho la siguiente comparador
public class ItemFuzzyMatchComparer : IEqualityComparer<string>
{
bool IEqualityComparer<string>.Equals(string x, string y)
{
return (x.Contains(y) || y.Contains(x));
}
int IEqualityComparer<string>.GetHashCode(string obj)
{
if (Object.ReferenceEquals(obj, null))
return 0;
return obj.GetHashCode();
}
}
Cuando elimino errores, el único punto de interrupción que golpea está en el método GetHashCode(). The Equals() nunca se toca. ¿Algunas ideas?
Para mí fue un buen ejercicio. En mi caso, me salí con 'public int GetHashCode (string obj) {return obj.ToLower(). GetHashCode();}' Su pregunta es vieja, pero me encontré con el mismo problema 4 años después. –