Я пытаюсь реализовать пользовательский сопоставитель в двух списках строк и использовать метод linux.Except(), чтобы получить те, которые не являются одним из списков. Причина, по которой я делаю пользовательский сопоставитель, заключается в том, что мне нужно выполнить "нечеткое" сравнение, т.е. Одна строка в одном списке может быть встроена внутри строки в другой список.
Я сделал следующий компаратор
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();
}
}
Когда я отлаживаю, единственная точка останова, которая попадает, находится в методе GetHashCode(). Равно() никогда не прикасается. Любые идеи?