文字列の 2 つのリストにカスタム比較子を実装し、.Except() linq メソッドを使用して、リストの 1 つではないものを取得しようとしています。カスタム比較子を使用する理由は、"あいまい" な比較を行う必要があるためです。つまり、1 つのリストの 1 つの文字列を別のリストの文字列内に埋め込むことができます。
次の比較子を作成しました
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() メソッドにあります。Equals() は決して触れられません。何か案は?