Linq orderyby boolean - PullRequest
       2

Linq orderyby boolean

9 голосов
/ 28 февраля 2012

У меня есть запрос Linq, который возвращает список ordererd, который он работает, но при сортировке логического значения он всегда сначала ставит ложные элементы.

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

Есть ли способ сначала заказать настоящие предметы?

Спасибо за помощь

David

Ответы [ 2 ]

28 голосов
/ 28 февраля 2012

Метод OrderBy сортирует элементы в порядке возрастания по умолчанию . Теперь, учитывая, что числовое представление логического типа:

  • false = 0
  • true = 1

false значения, естественно, будут на первом месте. Если вы хотите изменить порядок, просто используйте ключевое слово descending:

return from workers in db.Workers
               orderby workers.active descending, workers.naam 
               select workers;
9 голосов
/ 28 февраля 2012

Используйте опцию заказа по descending, и это перевернет список. См. MSDN Soring Data для получения дополнительных примеров сортировки.

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