【问题标题】:OrderBy descending in Lambda expression?OrderBy 在 Lambda 表达式中降序?
【发布时间】:2010-12-10 18:24:03
【问题描述】:

我知道在正常的 Linq 语法中,orderby xxx descending 很简单,但是在 Lambda 表达式中我该怎么做呢?

【问题讨论】:

    标签: linq lambda


    【解决方案1】:

    正如布兰农所说,是OrderByDescendingThenByDescending

    var query = from person in people
                orderby person.Name descending, person.Age descending
                select person.Name;
    

    相当于:

    var query = people.OrderByDescending(person => person.Name)
                      .ThenByDescending(person => person.Age)
                      .Select(person => person.Name);
    

    【讨论】:

    • "order by person.Name descending" 应该是 "orderby person.Name descending"
    【解决方案2】:

    使用System.Linq.Enumerable.OrderByDescending()?

    例如:

    var items = someEnumerable.OrderByDescending();
    

    【讨论】:

      【解决方案3】:

      试试这个:

      List<int> list = new List<int>();
      list.Add(1);
      list.Add(5);
      list.Add(4);
      list.Add(3);
      list.Add(2);
      
      foreach (var item in list.OrderByDescending(x => x))
      {
          Console.WriteLine(item);                
      }
      

      【讨论】:

        【解决方案4】:

        换一种方式试试:

        var qry = Employees
                  .OrderByDescending (s => s.EmpFName)
                  .ThenBy (s => s.Address)
                  .Select (s => s.EmpCode);
        

        Queryable.ThenBy

        【讨论】:

          【解决方案5】:

          这仅适用于您有一个数字字段的情况,但您可以在字段名称前放置一个减号,如下所示:

          reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
          

          但是,当您在 int?double?decimal? 字段上运行它时,它的工作方式与 OrderByDescending 略有不同。

          OrderByDescending 上会发生什么,空值将位于末尾,而使用此方法时,空值将位于开头。如果您想在不将数据拆分成片段并稍后拼接的情况下将空值随机排列,这很有用。

          【讨论】:

            【解决方案6】:

            LastOrDefault() 通常不工作,但使用Tolist() 它会工作。没必要用OrderByDescending这样用Tolist()

            GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-09-10
              • 1970-01-01
              • 2014-01-28
              • 1970-01-01
              • 2023-02-01
              • 1970-01-01
              相关资源
              最近更新 更多