Пытаясь убедиться в том, что C# Equals для IEnumerables является ссылкой 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.