如何对ASp.net MVC下拉列表进行排序?

cho*_*bo2 4 c# asp.net-mvc

我有这个代码

    List<SelectListItem> list = new List<SelectListItem>()
    { 
        new SelectListItem() { Text = "bob", Value = "bob"},
        new SelectListItem() { Text = "apple", Value = "apple"},
        new SelectListItem() { Text = "grapes", Value = "grapes"},
    };
Run Code Online (Sandbox Code Playgroud)

这将用于与asp.net mvc html帮助器绑定.但是我想在绑定它之前对它进行排序.我怎么能这样做?

gri*_*egs 16

如果你可以使用LINQ那么:

list.OrderBy(x => x.Value)
Run Code Online (Sandbox Code Playgroud)

要么

list.OrderByDescending(x =>x.Value)
Run Code Online (Sandbox Code Playgroud)

应该这样做.

编辑

应该读;

list = list.OrderBy(x => x.Value);
Run Code Online (Sandbox Code Playgroud)


Luk*_*Led 10

干得好:

List<SelectListItem> list = new List<SelectListItem>()
{ 
    new SelectListItem() { Text = "apple", Value = "apple"},
    new SelectListItem() { Text = "bob", Value = "bob"},
    new SelectListItem() { Text = "grapes", Value = "grapes"},
};
Run Code Online (Sandbox Code Playgroud)

排序:)

对不起,无法阻止自己:)

编辑

看起来好像你需要:

var fruits = new List<string> {"apple", "bob", "grapes"};
fruits.Sort();
var fruitsSelectList = new SelectList(fruits);
Run Code Online (Sandbox Code Playgroud)

然后在视野中

Html.DropDownList("Fruit",fruitsSelectList);
Run Code Online (Sandbox Code Playgroud)

  • 现在这很有趣! (4认同)
  • 这是最快的解决方案:) (2认同)