【发布时间】:2012-10-22 18:41:26
【问题描述】:
我的代码是这样的:
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 在这种情况下的作用,我缺少的是如何生成obj 的InvariantCulture、IgnoreNonSpace 和IgnoreCase 版本,以便我可以返回它的HashCode .
我可以自己从obj 中删除变音符号和大小写,然后返回hashcode,但我想知道是否有更好的选择。
【问题讨论】:
-
你打算将它与字典、
HashSet或其他任何使用哈希表的东西一起使用吗? -
这个类的目的是什么?您能否提供一个可以避免的语法示例?
标签: c# .net string string-comparison