gpt4 book ai didi

c# - 下拉列表的枚举描述值

转载 作者:可可西里 更新时间:2023-11-01 09:05:27 25 4
gpt4 key购买 nike

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

我有一个像这样的枚举

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

现在我想要枚举描述绑定(bind)到下拉列表..有人可以帮助我..

提前致谢!

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

最佳答案

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;

这两种扩展方法对于我从事 5 年和两份不同的工作来说非常宝贵,完全可以满足您的需求。

关于c# - 下拉列表的枚举描述值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com