【发布时间】:2020-04-03 16:32:48
【问题描述】:
此测试失败:
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestMethod()]
public void dictEqualTest() {
IDictionary<string, int> dict = new Dictionary<string, int>();
IDictionary<string, int> dictClone = new Dictionary<string, int>();
for (int x = 0; x < 3; x++) {
dict[x.ToString()] = x;
dictClone[x.ToString()] = x;
}
Assert.AreEqual(dict, dictClone); // fails here
Assert.IsTrue(dict.Equals(dictClone)); // and here, if the first is commented out
Assert.AreSame(dict, dictClone); // also fails
}
我是否误解了 Dictionary 的工作原理?
我正在寻找 .equals() 的 Java 等效项,而不是尝试检查引用相等性。
【问题讨论】:
-
我将从堆栈跟踪开始 - AreEqual 调用哪个方法?顺便问一下,这是MBUnit、NUnit、MS Test/其他吗?
-
这是内置的 Visual Studio 2008 Pro 单元测试。
标签: c# .net dictionary equality