首页 文章

OrderBy在Lambda表达式中降序?

提问于
浏览
239

我知道在正常的Linq语法中, orderby xxx descending 非常简单,但我如何在Lambda表达式中执行此操作?

6 回答

  • 62

    正如布兰农所说,它是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);
    
  • 21

    使用 System.Linq.Enumerable.OrderByDescending()

    例如:

    var items = someEnumerable.OrderByDescending();
    
  • 14

    试试这个:

    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);                
    }
    
  • 3

    试试另一种方式:

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

    Queryable.ThenBy

  • 1

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

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

    但是,当您在 int?double?decimal? 字段上运行它时,这与 OrderByDescending 略有不同 .

    会发生什么是在 OrderByDescending 上,空值将在最后,与此方法相比,空值将在开头 . 如果您希望在不将数据拆分成片段并稍后拼接它的情况下随机播放空值,这将非常有用 .

  • 407

    LastOrDefault() 通常不起作用但是 Tolist() 它会起作用 . 没有必要像这样使用 OrderByDescending 使用 Tolist() .

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

相关问题