2012-02-28 25 views
9

Tôi đã có một truy vấn LINQ trả về một danh sách ordererd nó hoạt động nhưng khi phân loại một boolean nó luôn luôn đặt các mục sai đầu tiên.LINQ orderyby boolean

return from workers in db.Workers 
       orderby workers.active, workers.naam 
       select workers; 

Có cách nào để đặt hàng các mặt hàng thực sự trước không.

Cảm ơn vì đã giúp

David

Trả lời

9

Sử dụng thứ tự bằng descending lựa chọn và nó sẽ đảo ngược danh sách. Xem MSDN Soring Data để biết thêm ví dụ về sắp xếp.

return from workers in db.Workers 
      orderby workers.active descending, workers.naam 
      select workers; 
28

Phương pháp OrderBy sẽ sắp xếp mục thứ tự tăng dần theo mặc định. Bây giờ, cho rằng các đại diện số của một boolean là:

  • false = 0
  • true = 1

false giá trị tự nhiên sẽ đến đầu tiên. Nếu bạn muốn đảo ngược thứ tự, chỉ cần sử dụng từ khóa descending:

return from workers in db.Workers 
       orderby workers.active descending, workers.naam 
       select workers;