我有一個客戶列表,可以根據用戶的選擇在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