我为我的一个班级重写了 Equals 方法。在该方法中,我检查每对字典与另一个实例的字典的相等性,如下所示
public override bool Equals (object obj)
{
...
// compare to make sure all <key, value> pair of this.dict have
// the match in obj.dict
...
}
现在,我需要重写 GetHashCode 方法以及建议的方法。
我是否需要对字典的所有键或键加值都这样做?
基本上,以下是好的还是矫枉过正?
public override int GetHashCode ()
{
int iHash = 0;
foreach (KeyValuePair<string, T> pair in this.dict)
{
iHash ^= pair.Key.GetHashCode();
iHash ^= pair.Value.GetHashCode();
}
return iHash;
}