我正在尝试在两个字符串列表上实现自定义比较器,并使用 .Except() linq 方法来获取那些不是列表之一的比较器。我做一个自定义比较器的原因是因为我需要做一个“模糊”比较,即一个列表上的一个字符串可以嵌入到另一个列表上的一个字符串中。
我做了以下比较器
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() 永远不会被触及。有任何想法吗?