2010-06-18 29 views
20
.OrderBy(y => y.Year).ThenBy(m => m.Month); 

Làm cách nào để đặt descending?LINQ nhiều đơn đặt hàng DESCENDING

EDIT:

Tôi cố gắng này:

var result = (from dn in db.DealNotes 
         where dn.DealID == dealID       
         group dn by new { month = dn.Date.Month, year = dn.Date.Year } into date 
         orderby date.Key.year descending 
         orderby date.Key.month descending 
         select new DealNoteDateListView { 
          DisplayDate = date.Key.month + "-" + date.Key.year, 
          Month = date.Key.month, 
          Year = date.Key.year, 
          Count = date.Count() 
         }) 
         //.OrderBy(y => y.Year).ThenBy(m => m.Month) 
         ; 

Và nó dường như làm việc. Có sai khi sử dụng orderby hai lần như tôi đã sử dụng ở đây không?

Trả lời

44

Bạn có thể nhận được thứ tự giảm dần bằng cách sử dụng một cặp khác nhau của phương pháp:

items.OrderByDescending(y => y.Year).ThenByDescending(m => m.Month); 

Sử dụng LINQ truy vấn, bạn có thể viết:

from date in db.Dates 
orderby date.Key.year descending, date.Key.month descending 
select new { ... } 

Bí quyết là bạn chỉ cần một orderby khoản - nếu bạn thêm nhiều trong số này, danh sách sẽ được sắp xếp lại mỗi lần. Để sắp xếp các yếu tố có khóa đầu tiên bằng một khóa khác, bạn cần tách chúng bằng cách sử dụng một khóa khác, bạn cần tách riêng chúng bằng cách sử dụng , (orderby được dịch sang OrderBy hoặc OrderByDescending trong khi , được dịch sang ThenBy hoặc ThenByDescending).

+0

tuyệt vời, cảm ơn :) Tôi đã chỉnh sửa câu hỏi của mình, bạn có thể vui lòng xem –

Các vấn đề liên quan