C # listesi. Azalan sıralama


152

'Ürün.Adı'na göre azalan sırayla sıralanmış bir liste almak istiyorum .

Listeyi artan sırada sıralayan aşağıdaki fonksiyona benzer şekilde, tam tersi, bu mümkün mü?

var newList = list.OrderBy(x => x.Product.Name).ToList();

Sorun toListbunun yerine yazmış olman olabilir ToListmi?
Mark Byers

1
Sanırım descendinganahtar kelimeyi kabul etmediğini kastetti çünkü ifadesine şu şekilde başlamadıfrom x in list...
StriplingWarrior

1
Üzgünüm, bu kodu tam olarak kopyalamadım ama hafızadan yazdım. Gerçek kodum çalışıyor, ancak yalnızca artan sırada sıralanmış bir liste döndürüyor.
PFranchise

Yanıtlar:


262

Elbette:

var newList = list.OrderByDescending(x => x.Product.Name).ToList();

Doc: OrderByDescending (IEnumerable, Func) .

Yorumunuza yanıt olarak:

var newList = list.OrderByDescending(x => x.Product.Name)
                  .ThenBy(x => x.Product.Price)
                  .ToList();

2
Düzenlemeniz ada göre (z-> a'dan) sonra fiyata (düşük -> yüksek) göre mi sıralayacak?
PFranchise

11
Evet doğru. OrderBy veya ThenBy'ye yapılan çağrılar her zaman artmaktadır. OrderByDescending ve ThenByDescending yöntemleri, azalan için kullanacağınız yöntemlerdir.
StriplingWarrior


11
list.OrderByDescending();

benim için çalışıyor.


4
Bu, list = list.OrderByDescending (). ToList ();
Almo

8
var newList = list.OrderBy(x => x.Product.Name).Reverse()

Bu işi yapmalı.


1

projemdeki bu kod parçasına bak

Modelimdeki bir özelliğe göre listeyi yeniden düzenlemeye çalışıyorum,

 allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name));

ama a olduğunda bir problemle karşılaştım small and capital letters exist, bu yüzden çözmek için string karşılaştırıcıyı kullandım.

allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase)

-2
list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList();

Bu, zamanı azalan sırada sıralanmış olarak göstermem için çalışıyor.

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.