在尝试向自己验证时,IEnumerables 的 C# Equals 是一个引用 equals,我发现了一些奇怪的东西。在 NUnit 中进行以下设置
var a = (IEnumerable<string>)(new[] { "one", "two" });
var b = (IEnumerable<string>)(new[] { "one", "two" });
这个测试
Assert.IsFalse(a.Equals(b));
通过,而这个测试
Assert.AreNotEqual(a, b);
没有。谁能解释为什么?
编辑:感谢您的回答。我刚刚阅读了 NUnit 的文档,它说了同样的话,即带有集合的 AreEqual 和 AreNotEqual 测试集合中每个元素的相等性。我想我被这个概念困住了,AreEqual 和 AreNotEqual 只是使用普通的 Equals。