我的代码是这样的:
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
}
}
我知道GetHashCode
在这种情况下的作用,我缺少的是如何生成InvariantCulture
,IgnoreNonSpace
和IgnoreCase
版本obj
以便我可以返回它的HashCode
.
我可以从obj
自己身上删除变音符号和大小写,然后返回 it's hashcode
,但我想知道是否有更好的选择。