Ho un elenco di clienti che possono essere ordinati ovunque da 1 a 6 campi in base alla selezione dell'utente. I campi di ordinamento possono essere in qualsiasi ordine. Se conosco i campi e la sequenza prima del tempo, l'ordinamento è facile:Come posso ordinare un elenco in base alle selezioni di un utente in ASP.NET MVC?
customers = customers
.OrderBy(c => c.LastName)
.ThenBy(c => c.City)
.ThenBy(c => c.Age).ToList();
Come faccio a passare nei campi di ordinamento in fase di esecuzione? C'è un modo per fare qualcosa del genere?
string sortField1 = "State";
string sortField2 = "City";
string sortField3 = "Type";
customers = customers
.OrderBy(c => c.sortField1)
.ThenBy(c => c.sortField2)
.ThenBy(c => c.sortField3).ToList();
Grazie, Chrisi. Darò un'occhiata. –
Ho letto il post di Tomas. Ho anche guardato [il post di Scott Guthrie] (http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library. aspx) (dal 2008) su linq dinamico. Non mi piaceva che entrambi quei sentieri sembrassero morti. Tomas ha un link a un suo progetto CodePlex che era in alpha nel 2007 e da allora non è stato toccato. Fortunatamente la soluzione di concatenare un numero variabile di opere di .OrderBy per me. –