J'essaie d'implémenter un comparateur personnalisé sur deux listes de chaînes et d'utiliser la méthode .Except() linq pour obtenir celles qui ne sont pas une des listes. La raison pour laquelle je fais un comparateur personnalisé est que je dois faire une comparaison "floue", c'est-à-dire qu'une chaîne sur une liste pourrait être incorporée dans une chaîne de l'autre liste.linq Excepté et personnalisé IEqualityComparer
J'ai fait le comparateur
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();
}
}
suivante Quand je debug, le seul point d'arrêt qui frappe est la méthode GetHashCode(). Les égales() ne sont jamais touchées. Des idées?
Pour moi, ce fut un bon exercice. Dans mon cas, je me suis échappé avec 'public int GetHashCode (chaîne obj) {return obj.ToLower(). GetHashCode();}' Votre question est ancienne mais j'ai rencontré le même problème 4 ans plus tard. –