두 개의 문자열 목록에서 사용자 정의 비교자를 구현하고 .Except() linq 메소드를 사용하여 목록 중 하나가 아닌 것을 가져 오려고합니다. 사용자 정의 비교자를 수행하는 이유는 "퍼지"비교를해야하기 때문입니다. 즉, 한 목록의 한 문자열을 다른 목록의 문자열에 포함 할 수 있습니다.linq 예외 및 사용자 정의 IEqualityComparer
나는 다음과 같은 비교 자
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()는 절대 건드리지 않습니다. 어떤 아이디어?
그것은 좋은 운동이었다. 제 경우에는'public int GetHashCode (string obj) {return obj.ToLower (GetHashCode();}'질문이 오래되었지만 4 년 후 같은 문제가 발생했습니다. –