My code is like this:
public class CaseAccentInsensitiveEqualityComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return string.Compare(x, y, CultureInfo.InvariantCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) == 0;
}
public int GetHashCode(string obj)
{
// not sure what to put here
}
}
I know the role of GetHashCode
in this context, what I'm missing is how to produce the InvariantCulture
, IgnoreNonSpace
and IgnoreCase
version of obj
so that I can return it's HashCode
.
I could remove diacritics and the case from obj
myself and then return it's hashcode
, but I wonder if there's a better alternative.