Lambda ifadesinde azalan?


250

Normal Linq dilbilgisinde biliyorum orderby xxx descending, çok kolay, ama bunu Lambda ifadesinde nasıl yapabilirim?

Yanıtlar:


428

Brannon'un dediği gibi, OrderByDescendingve ThenByDescending:

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

şuna eşittir:

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

7
"kişiye göre sipariş. İsim azalan" olmalıdır " orderby person.Name azalan"
mxmissile

63

Kullan System.Linq.Enumerable.OrderByDescending()?

Örneğin:

var items = someEnumerable.OrderByDescending();

21

Bunu dene:

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

14

Bunu başka bir şekilde deneyin:

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

Queryable.ThenBy


3

Bu yalnızca sayısal bir alana sahip olduğunuz durumlarda çalışır, ancak alan adının önüne şöyle bir eksi işareti koyabilirsiniz:

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

Ancak bu OrderByDescending, bir int?veya double?veya decimal?alanlarda çalıştırdığınızdan biraz farklı çalışır .

Ne olacak üzerindedir OrderByDescendingbu yöntemle nulls başında olacak vs, sonunda olacak boş değerlere. Bu, verileri parçalara ayırmadan ve daha sonra eklemeden null'ları karıştırmak istiyorsanız kullanışlıdır.


1

LastOrDefault()genellikle çalışmıyor ama onunla birlikte Tolist()çalışacak. Bunun gibi kullanımı OrderByDescendingkullanmaya gerek yoktur Tolist().

GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.