Linq语句迭代一个集合并确保每个项目的顺序正确吗?

Pur*_*ome 5 .net linq linq-to-objects

我有一个简单的IEnumerable<foo> foos;这个集合是db调用的一些结果.

我希望确保列表中的每个项目都正确排序.Db要么返回结果

  • 按id排序,从最低到最高.例如.1,2,3,4,....等
  • 按创建日期排序,减少(最近,第一次).

这可以通过快速的linq声明来完成..来检查这个吗?

例如. Assert.IsTrue(.. insert linq statement here .. )

目前,我有一个for循环并记住上一个条目,并检查是否有值,如果有值.这感觉......很麻烦.

有任何想法吗?

And*_*ite 4

您可以将您的收藏与订购的版本进行比较:

CollectionAssert.AreEqual(foos.ToList(), foos.OrderBy(f => f.Id));
Run Code Online (Sandbox Code Playgroud)

或者:

CollectionAssert.AreEqual(foos.ToList(), 
                          foos.OrderByDescending(f => f.DateCreated));
Run Code Online (Sandbox Code Playgroud)