【发布时间】:2017-08-15 22:18:30
【问题描述】:
我有一个枚举列表,其中包含一个名为 Default 的枚举。
public enum Fruits { Default = Banana,
Banana = 1,
Orange = 2,
Grapefruit = 3 }
我需要填充一个不包括默认字段的下拉列表。
Html.DropDownList("fruitSelector",
Enum.GetValues(typeof(Fruits)).Cast<Fruits>()
.OrderBy(o => o.GetDescription())
.Where(o => o != Fruits.Default)
.Select(o => new SelectListItem() {Text = o.GetDescription(), Value = ((int) o).ToString()}), "-- All Fruits --",
new {@class = "form-control", @aria_describedby="sizing-addon1"})
当我尝试过滤 Fruits.Default 时,它会同时删除默认值和 Banana。如何在仅删除默认值的情况下进行过滤器比较?
[[CORRECTION]] 这个枚举重复了我的问题。老实说,我不明白其中的区别。
public enum Fruits
{
Default = Peaches,
Peaches = 1,
Bananas = 2,
Grapefruit = 3,
Apple = 101,
Watermellon = 102
}
或
public enum Fruits2
{
Default = Mangos,
Mangos = 1,
Dates = 2,
Figs = 3,
Apples = 101,
Limes = 102,
Grapes = 103
}
【问题讨论】:
-
上面的代码能编译吗?还是您有此处未显示的扩展方法?否则
o.GetDescription()怎么编译不出错? -
@Sach ya 这是一种获取自定义 Description 注释的方法。你可以排除它。
标签: c# asp.net-mvc enums