2011-01-11 19 views
11

Ben bir listesini almak istiyorum önceliğe göre Kodum buradaBirden çok OrderByDescending kriterlerini nasıl yönetebilirim?

  1. Todate
  2. Numarası
  3. RunDate

mesafesindedir düzen tarafından üç özellik

MyList 
    .OrderByDescending(p => p.ToDate) 
    .OrderByDescending(p => p.Number) 
    .OrderByDescending(p => p.RunDate) 
    .FirstOrDefault(); 

Ama sonuç yanlış.

Örneğin, MyList iki öğe içeriyorsa: e1, e2 ve e1.ToDate> e2.ToDate, sonuç e2'dir.

Hangi özellik önce gelir? En yüksek öncelikli (ToDate) veya en düşük olan (RunDate) özellik mi?

+0

Bu Fluent Nhibernate ile ilgisi yok - tamamen LINQ. Etiketleri düzenledim - siz de (veya yeterli temsilcisi olan başka bir kişi) başlığı da değiştirmenizi öneriyorum. –

cevap

21

Ben gerçekten istediğiniz şüpheli: Eğer OrderBy veya OrderByDescending kullanarak birincil birini sağladıktan sonra

MyList 
.OrderByDescending(p => p.ToDate) 
.ThenByDescending(p => p.Number) 
.ThenByDescending(p => p.RunDate) 
.FirstOrDefault(); 

ThenBy ve ThenByDescending

ikincil orderings belirtmek için kullanılır.

İlgili konular