定义一个通用的泛型类,以适应不同需要。
public static class EnumManager<TEnum>
{
//利用反射获取枚举中的项
public static DataTable GetDataTable()
{
Type t = typeof(TEnum);//创建类型
FieldInfo[] fieldArray = t.GetFields();//获取字段信息对象集合
DataTable table = new DataTable();
table.Columns.Add("Name", Type.GetType("System.String"));
table.Columns.Add("Value", Type.GetType("System.Int32"));
//遍历集合
foreach (FieldInfo field in fieldArray)
{
if (!field.IsSpecialName)
{
DataRow row = table.NewRow();
row[0] = field.Name;
row[1] = Convert.ToInt32(field.GetRawConstantValue());
table.Rows.Add(row);
}
}
return table;
}
}
定义一个枚举:
public enum OrderStatus
{
未提交 = 1,
已提交 = 2,
已取消 = 3,
受理中 = 4,
已退回 = 5,
已完成 = 6
}
调用结果:
//重构过的通用方法
DataTable table2 = EnumManager<OrderStatus>.GetDataTable();