代码之家  ›  专栏  ›  技术社区  ›  camainc

如何使用VB.Net lambda表达式按多列排序

  •  18
  • camainc  · 技术社区  · 16 年前

    我对这个网站做了一个简短的搜索,用谷歌搜索了一下,但似乎找不到一个好的例子。我还在想办法弄清楚“Lambda表情”这件事。

    下面是我的现有代码,它使用单个列对结果进行排序,返回一个有序列表:

    Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).ToList
    

    注意:WebCategory对象有一个子网页对象(基于外键)。我想先按WebPage.DisplayOrder订购,然后按WebCategory.DisplayOrder订购。

    Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder).OrderBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList
    

    2 回复  |  直到 16 年前
        1
  •  45
  •   Jeppe Stig Nielsen    16 年前

    我发现 this MSDN article 我猜你要找的是:

    Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder). _
    ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder).ToList
    
        2
  •  14
  •   Meta-Knight    16 年前

    你应该使用 ThenBy

    Return _dbContext.WebCategories.OrderBy(Function(c As WebCategory) c.DisplayOrder) _
                                   .ThenBy(Function(c As WebCategory) c.WebPage.DisplayOrder) _
                                   .ToList()