Tengo una lista de clientes que se pueden ordenar en cualquier lugar de 1 a 6 campos en función de la selección de un usuario. Los campos de clasificación pueden estar en cualquier orden. Si conozco a los campos y la secuencia antes de tiempo, la clasificación es fácil:¿Cómo puedo ordenar una lista basada en las selecciones de un usuario en ASP.NET MVC?
customers = customers
.OrderBy(c => c.LastName)
.ThenBy(c => c.City)
.ThenBy(c => c.Age).ToList();
¿Cómo iba a pasar en los campos de clasificación en tiempo de ejecución? ¿Hay alguna manera de hacer algo como esto?
string sortField1 = "State";
string sortField2 = "City";
string sortField3 = "Type";
customers = customers
.OrderBy(c => c.sortField1)
.ThenBy(c => c.sortField2)
.ThenBy(c => c.sortField3).ToList();
Gracias, Chrisi. Le daré un vistazo. –
Leí la publicación de Tomás. También miré [la publicación de Scott Guthrie] (http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library. aspx) (desde 2008) en linq dinámico. No me gustó que ambos caminos parezcan muertos. Tomás tiene un enlace a un proyecto CodePlex suyo que estaba en alfa en 2007 y no ha sido tocado desde entonces. Afortunadamente, la solución de encadenar un número variable de .OrderBy me funciona. –