在嘗試驗證自己時,C#等於IEnumerables是一個引用等於,我發現有些奇怪。隨着NUnit的C#Assert.AreNotEqual與Equals的比較
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只是使用plain Equals。