我试图弄清楚如何确定两者何时List<FileInfo>不同。为什么 MSTest 告诉我这两个与CollectionAssert.AreEquivalentor不同SequenceEqual?
测试失败:CollectionAssert.AreEquivalent failed. The expected collection contains 1 occurrence(s) of <C:\Windows\Microsoft.NET\Framework\v3.0\WPF\PenIMC.dll>. The actual collection contains 0 occurrence(s).
string basePath = Path.Combine(Environment.GetEnvironmentVariable("windir"),
@"Microsoft.NET\Framework\v3.0\WPF");
var fiList1 = new List<FileInfo> { new FileInfo(Path.Combine(basePath, "PenIMC.dll")) };
var fiList2 = new List<FileInfo> { new FileInfo(Path.Combine(basePath, "PenIMC.dll"))};
CollectionAssert.AreEquivalent(fiList1, fiList2); //why is this failing?
//And this one too...
Assert.IsTrue(fiList1.SequenceEqual(fiList2));
我可以让它与int类似的简单类型一起使用,但不适用于我的List<FileInfo>. 如果您不能仅通过查看我上面的代码来确定这一点,也许可以提供一种聪明的方法来调查这一点 - 例如将对象序列化为 XML,我可以区分它们。我猜我错过了一些东西。