【发布时间】:2011-01-04 16:04:50
【问题描述】:
我有一个名为 Class1 的类 我覆盖了它的 Equals 函数 现在我有一个 Dictionary 的实例 我添加了一个名为 OBJ1 的 Class1 实例。 我有另一个名为 OBJ2 的 Class1 实例。 代码为 OBJ1.Equals(OBJ2) 返回 true。 但是我在字典里找不到OBJ2。
这是伪代码
Class1 OBJ1 = new Class1(x, y, z);
Class1 OBJ2 = new Class1(a, b, c);
Dictionary<Class1, int> dic1 = new Dictionary<Class1, int>();
dic1.Add(OBJ1, 3);
OBJ1.Equals(OBJ2) -------------> return true
Dictionary.ContainsKey(OBJ2) --------------> return false
为什么会这样? 任何帮助都将受到高度欢迎
【问题讨论】:
-
您是否也为您的班级覆盖了 GetHashcode?span>
标签: c# dictionary equals