我有一个枚举列表,其中包括一个名为默认枚举。c#枚举名称过滤DropDownList而不是值
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时,它将删除BOTH默认值和香蕉。我如何做一个过滤器比较,我只删除默认?
[[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
https://stackoverflow.com/questions/30467519/about-enum-and-dataannotation –
@Sach雅是一种获取自定义描述注释的方法。你可以排除这一点。 – user1161137