Digamos que tengo una lista de objetos:pedido selectiva con LINQ, ordenación parcial
var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = -1 },
new { Order = 3 },
new { Order = 2 },
new { Order = -1 }
};
tengo que pedirlo por lo que los artículos con "Orden> -1" estar en la cima de la lista ordenada por la Orden ascendiendo, y los elementos restantes con "Orden == -1" los seguían.
¿Existe una forma más elegante de hacer esto que el uso de ConAct() + Donde() cláusulas:
var orderedItems = items.Where(x => x.Order > -1).OrderBy(x => x.Order)
.Conact(items.Where(x => x.Order == -1);
modo que después de clasificar esta lista se vería así:
var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = 2 },
new { Order = 3 },
new { Order = -1 },
new { Order = -1 }
};
también " la lista de elementos "en el escenario real ya es un objeto IQueryable complejo. Es por eso que estoy tratando de encontrar la forma más óptima de hacer un pedido tan selectivo.
Algo confundido ahora ... ascendente significaría 1,2,3 ¿no es así? EN tal orden, -1 debe ser automáticamente antes de 0? – flq
Debería usar 'Concat', no' Union'. – SLaks
SLaks: Buen punto –