代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

要遍历集合并确保每个项的顺序正确的linq语句?

  •  5
  • Pure.Krome  · 技术社区  · 15 年前

    我有一个简单的 IEnumerable<foo> foos; 此集合是数据库调用的一些结果。

    我想确保清单上的每一项都是正确的。db返回结果

    • 按ID排序,从低到高。例1,2,3,4。…等。
    • 按创建日期排序,递减(最新,第一个)。

    这可以用一个快速的linq语句来完成吗..检查一下这个?

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

    目前,我有一个for循环,记住前面的条目,并检查它的值,是否有值。这感觉…麻烦。

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Pure.Krome    15 年前

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

    CollectionAssert.AreEqual(foos.ToList(), foos.OrderBy(f => f.Id));
    

    或:

    CollectionAssert.AreEqual(foos.ToList(), 
                              foos.OrderByDescending(f => f.DateCreated));
    
        2
  •  2
  •   Josh    15 年前

    有一个扩展方法叫做 SequenceEqual 这样就可以了。但是,也有一个assert方法称为 CollectionAssert.AreEqual 比较两个集合以确保它们具有相同顺序的相同项。