2012-02-28 12 views
9

Tengo una consulta de Linq que devuelve una lista de ordenadas pero funciona al ordenar un booleano siempre coloca primero los elementos falsos.Linq orderyby boolean

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

¿Hay alguna manera de pedir primero los artículos verdaderos?

Gracias por ayudar a

David

Respuesta

9

Utilice el fin de descending opción y que invertirá la lista. Consulte MSDN Soring Data para obtener más ejemplos sobre la clasificación.

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

El método OrderBy será ordenar los elementos en orden ascendente por defecto. Ahora, dado que la representación numérica de un valor booleano es:

  • false = 0
  • true = 1

false valores, naturalmente, vendrá primero. Si desea invertir el orden simplemente use la palabra clave descending:

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