我有一个简单的IEnumerable<foo> foos;
这个集合是来自db调用的一些结果。
我希望确保列表中的每个项目都正确排序。 Db要么通过
返回结果这可以通过快速的linq语句完成..来检查这个吗?
例如。 Assert.IsTrue(.. insert linq statement here .. )
目前,我有一个for循环,并记住上一个条目并检查是否有值,如果有值。这感觉很麻烦。
有什么想法吗?
答案 0 :(得分:4)
您可以将您的收藏与订购版本进行比较:
CollectionAssert.AreEqual(foos.ToList(), foos.OrderBy(f => f.Id));
或者:
CollectionAssert.AreEqual(foos.ToList(),
foos.OrderByDescending(f => f.DateCreated));
答案 1 :(得分:2)
有一种名为SequenceEqual的扩展方法可以做到这一点。但是,还有一个名为CollectionAssert.AreEqual的断言方法,它比较两个集合以确保它们具有相同顺序的相同项目。