2011-01-11 21 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