2011-01-11 27 views
0
public static SelectList HolidayDays() 
{ 
    SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet); 

    //sort 
    retval.OrderBy(i => i.Text == "New York") 
      .ThenBy(i => i.Text == "London") 
      .ThenBy(i => i.Text); 

    return retval; 
} 

爲什麼SelectList沒有排序呢?它保持與我在執行排序操作之前所處的順序完全相同,但它編譯並運行時沒有錯誤。SelectList根本沒有排序

回答

4

OrderByThenBy返回一個集合,你沒有設置你的返回值;


SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet); 

return new SelectList(retval 
     .OrderByDescending(i => i.Text == "New York") 
     .ThenByDescending(i => i.Text == "London") 
     .ThenBy(i => i.Text).ToList(), 
    "Value", "Text"); 
+0

嗯,現在我似乎得到這個錯誤:錯誤無法隱式轉換類型 'System.Linq.IOrderedEnumerable ' 到「System.Web程序。 Mvc.SelectList」。一個明確的轉換存在(你是否缺少演員?) 我鑄造了它,但這是正確的舉措? – slandau 2011-01-11 15:19:08