我有一个客户列表,可以根据用户的选择在1到6个字段之间进行排序。排序字段可以按任何顺序排列。如果我提前知道字段和序列,排序很容易:如何根据用户在ASP.NET MVC中的选择对列表进行排序?
customers = customers
.OrderBy(c => c.LastName)
.ThenBy(c => c.City)
.ThenBy(c => c.Age).ToList();
如何在运行时传递排序字段?有没有办法做这样的事情?
string sortField1 = "State";
string sortField2 = "City";
string sortField3 = "Type";
customers = customers
.OrderBy(c => c.sortField1)
.ThenBy(c => c.sortField2)
.ThenBy(c => c.sortField3).ToList();
谢谢,Chrisi。我会看一看。 – 2012-01-11 23:31:57
我通过Tomas的帖子阅读。我也看了[斯科特格思里的帖子](http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library。 aspx)(从2008年开始)动态LINQ。我不喜欢这两条小径似乎都死了。 Tomas与他的CodePlex项目有一个联系,那就是2007年的alpha版本,此后一直没有被触及。幸运的是,链接可变数量的.OrderBy的解决方案为我工作。 – 2012-01-12 19:58:33