排序依据降在Lambda表达式?(OrderBy descending in Lambda expr

2019-09-01 20:59发布

我知道,在正常的LINQ语法, orderby xxx descending是很容易的,但我要如何做到这一点的Lambda表达式?

Answer 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);


Answer 2:

使用System.Linq.Enumerable.OrderByDescending()

例如:

var items = someEnumerable.OrderByDescending();


Answer 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);                
}


Answer 4:

试试这个另一种方式:

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

Queryable.ThenBy



Answer 5:

这只能在你有一个数字字段的情况下,但你可以把一个减号在像这样的字段名称的前面:

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

但是这个作品有点不同于OrderByDescending当你正在上运行它int?double?decimal? 领域。

会发生什么事是OrderByDescending空值将在年底,VS用这种方法中的空白将是开头。 其中,如果你想不分割数据洗牌周围空成碎片,后来拼接它是有用的。



Answer 6:

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

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


文章来源: OrderBy descending in Lambda expression?
标签: linq lambda