C#使用枚举类型作为数据源
C#使用Enum.GetValues<TEnum>()方法获取枚举数组集合TEnum[],基于此可使用枚举的所有类型作为下拉框等控件的数据源使用。
1、枚举定义
internal enum IconResolution { [Description("16*16")] Width16 = 0, [Description("32*32")] Width32 = 1, [Description("48*48")] Width48 = 2, [Description("64*64")] Width64 = 3, [Description("128*128")] Width128 = 4 }
2、枚举帮助类
public static class EnumHelper { /// <summary>获取枚举字段的注释</summary> /// <param name="value">枚举值</param> /// <returns>枚举字段的注释</returns> public static string GetDescription(this Enum? value) { if (value == null) { return string.Empty; } var field = value.GetType().GetField(value.ToString(), BindingFlags.Static | BindingFlags.Public); if (field == null) { return string.Empty; } var customAttribute = field.GetCustomAttribute<DescriptionAttribute>(false); return string.IsNullOrEmpty(customAttribute?.Description) ? string.Empty : customAttribute.Description; } }
3、使用枚举类型
protected List<SelectedItem> IconResolutionList { get; } Enum.GetValues<IconResolution>().ToList().ForEach(t => { IconResolutionList.Add(new SelectedItem($"{t}", t.GetDescription())); });
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器