枚举描述值到下拉列表

hel*_*pme 10 c# enums

我是C#的新手,我有一个问题,

我有一个类似的枚举

   public enum
        {
    [Description("1,2,3")]
    123,
    [Description("3,4,5")]
    345,
    [Description("6,7,8 ")]
    678,
       }
Run Code Online (Sandbox Code Playgroud)

现在我希望枚举描述绑定到下拉列表..有人可以帮助我..

提前致谢!

PS:如果我不清楚,我很抱歉.让我知道我是否需要更具体

Kei*_*thS 10

public static class EnumExtensionMethods
{
    public static string GetDescription(this Enum enumValue)
    {
        object[] attr = enumValue.GetType().GetField(enumValue.ToString())
            .GetCustomAttributes(typeof (DescriptionAttribute), false);

        return attr.Length > 0 
           ? ((DescriptionAttribute) attr[0]).Description 
           : enumValue.ToString();            
    }

    public static T ParseEnum<T>(this string stringVal)
    {
        return (T) Enum.Parse(typeof (T), stringVal);
    }
}

//Usage with an ASP.NET DropDownList
foreach(MyEnum value in Enum.GetValues<MyEnum>())
   myDDL.Items.Add(New ListItem(value.GetDescription(), value.ToString())
...
var selectedEnumValue = myDDL.SelectedItem.Value.ParseEnum<MyEnum>()

//Usage with a WinForms ComboBox
foreach(MyEnum value in Enum.GetValues<MyEnum>())
   myComboBox.Items.Add(new KeyValuePair<string, MyEnum>(value.GetDescription(), value));

myComboBox.DisplayMember = "Key";
myComboBox.ValueMember = "Value";
...
var selectedEnumValue = myComboBox.SelectedItem.Value;
Run Code Online (Sandbox Code Playgroud)

这两种扩展方法对于我来说是非常宝贵的,可以用于5年和两个不同的工作,完全符合您的要求.