C# SelectList完全不排序 public static SelectList HolidayDays() { 选择List retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet); //分类 retval.OrderBy(i=>i.Text==“纽约”) .ThenBy(i=>i.Text==“伦敦”) .ThenBy(i=>i.Text); 返回返回; }

C# SelectList完全不排序 public static SelectList HolidayDays() { 选择List retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet); //分类 retval.OrderBy(i=>i.Text==“纽约”) .ThenBy(i=>i.Text==“伦敦”) .ThenBy(i=>i.Text); 返回返回; },c#,.net,sorting,selectlist,C#,.net,Sorting,Selectlist,为什么SelectList根本不排序?在我执行排序操作之前,它的顺序与它的完全相同,但它编译和运行时不会出错。并返回一个集合,而您没有将其设置为返回值 SelectList retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet); 返回新的选择列表(retval .OrderByDescending(i=>i.Text==“纽约”) .然后按降序排列(i=>i.Text==“伦敦”) .

为什么SelectList根本不排序?在我执行排序操作之前,它的顺序与它的完全相同,但它编译和运行时不会出错。

并返回一个集合,而您没有将其设置为返回值


SelectList retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet);
返回新的选择列表(retval
.OrderByDescending(i=>i.Text==“纽约”)
.然后按降序排列(i=>i.Text==“伦敦”)
.ThenBy(i=>i.Text).ToList(),
“价值”、“文本”);
并返回一个集合,该集合未设置为返回值


SelectList retval=GenerateKeyValueList(HolidayCityHelper.GetFriendlyName,HolidayCity.NotSet);
返回新的选择列表(retval
.OrderByDescending(i=>i.Text==“纽约”)
.然后按降序排列(i=>i.Text==“伦敦”)
.ThenBy(i=>i.Text).ToList(),
“价值”、“文本”);

Hmm,现在我似乎遇到了这个错误:错误7无法将类型“System.Linq.iorderenumerable”隐式转换为“System.Web.Mvc.SelectList”。一个明确的转换存在(你错过了一个演员阵容吗?)我铸造了它,但这是正确的举动吗?事实上,这似乎是为了一切都好,但然后以“伦敦,纽约”结束列表,而不是以“纽约,伦敦”开始列表。我不明白。如果它被颠倒过来,它会把“纽约,伦敦”和其他字母顺序颠倒过来吗?它把所有东西都按字母顺序排列,然后在结尾处加上“伦敦,纽约”:“代码> ReVALL。OrderBy(i= > I.text =伦敦))ThenBy(i=>文本==“纽约”)< /代码>给你。当我把它们颠倒过来的时候,它实际上把伦敦和纽约放进了他们中间的正确位置。所以它基本上是将整个列表作为一个大的alpha排序,而不是将纽约、伦敦放在首位。嗯,现在我似乎遇到了这个错误:错误7无法隐式地将类型“System.Linq.iorderenumerable”转换为“System.Web.Mvc.SelectList”。一个明确的转换存在(你错过了一个演员阵容吗?)我铸造了它,但这是正确的举动吗?事实上,这似乎是为了一切都好,但然后以“伦敦,纽约”结束列表,而不是以“纽约,伦敦”开始列表。我不明白。如果它被颠倒过来,它会把“纽约,伦敦”和其他字母顺序颠倒过来吗?它把所有东西都按字母顺序排列,然后在结尾处加上“伦敦,纽约”:“代码> ReVALL。OrderBy(i= > I.text =伦敦))ThenBy(i=>文本==“纽约”)< /代码>给你。当我把它们颠倒过来的时候,它实际上把伦敦和纽约放进了他们中间的正确位置。因此,它基本上将整个列表作为一个大阿尔法排序,而不是将纽约、伦敦排在首位。
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 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");