C# Equals for 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 を使用しているだけであるという考えに固執していたと思います。