第一步:新建枚举
using System.ComponentModel;
/// <summary>
/// 性别
/// </summary>
[Description("性别")]
public enum EnGender
{
/// <summary>
/// 女
/// </summary>
[Description("女")]
Famle,
/// <summary>
/// 男
/// </summary>
[Description("男")]
Male,
}
第二部:建立枚举扩展方法
public static DataTable EnGetParentList(this Enum en)
{
Type enumType = en.GetType(); // 获取类型对象
FieldInfo[] enumFields = enumType.GetFields(); //获取字段信息对象集合
DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Value", typeof(int));
foreach (FieldInfo field in enumFields)
{
if (!field.IsSpecialName)
{
DataRow row = table.NewRow();
object[] attrs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attrs != null && attrs.Length > 0)
{
row["Name"]=((DescriptionAttribute)attrs[0]).Description;
row["Value"]=Convert.ToInt32(field.GetRawConstantValue());
}
table.Rows.Add(row);
}
}
return table;
}
第三步:方法调用
DataTable table = EnGender.Famle.EnGetParentList();
结果: