将枚举值转为list (name,value) 的形式
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary> /// 获取口味 /// </summary> /// <returns></returns> private IList GetTastes() { var list = new ArrayList(); var tastes = typeof(Domain.Model.Enums.Tastes); foreach (var i in Enum.GetValues(tastes)) { var value = i; var field = i.GetType().GetField(i.ToString()); var display = Attribute.GetCustomAttribute(field, typeof(EnumDisplayAttribute)) as EnumDisplayAttribute; var name = display == null ? field.Name : display.Name; list.Add(new { name, value }); } return list; }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary> /// 标记字段的显示名称的特性 /// </summary> [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] public sealed class EnumDisplayAttribute : Attribute { /// <summary> /// 显示名称 /// </summary> public string Name { get; private set; } /// <summary> /// 标记字段的显示名称 /// </summary> /// <param name="name">显示名称</param> public EnumDisplayAttribute(string name) { this.Name = name; } }