Code
public class EnumHelp
{
private static Hashtable ht = new Hashtable();
public static List<MyListItem> GetCacheList(Type type)
{
if (ht.Contains(type))
{
return ht[type] as List<MyListItem>;
}
else
{
List<MyListItem> list = GetList(type);
ht[type] = list;
return list;
}
}
/// <summary>
///
/// </summary>
/// <param name="type">Enum type</param>
/// <returns></returns>
private static List<MyListItem> GetList(Type type)
{
FieldInfo[] fields = type.GetFields();
List<MyListItem> list = new List<MyListItem>();
for(int i=1;i<fields.Length;i++)
{
FieldInfo item = fields[i];
object[] objs = item.GetCustomAttributes(AttributeType, false);
string desription;
if (objs != null && objs.Length != 0)
{
DescriptionAttribute da = (DescriptionAttribute)objs[0];
desription = da.Description;
}
else
{
desription = item.Name;
}
int labelID = (int)System.Enum.Parse(type, item.Name);
list.Add(new MyListItem() {Name=desription,Value=labelID.ToString() });
}
return list;
}
}
public class EnumHelp
{
private static Hashtable ht = new Hashtable();
public static List<MyListItem> GetCacheList(Type type)
{
if (ht.Contains(type))
{
return ht[type] as List<MyListItem>;
}
else
{
List<MyListItem> list = GetList(type);
ht[type] = list;
return list;
}
}
/// <summary>
///
/// </summary>
/// <param name="type">Enum type</param>
/// <returns></returns>
private static List<MyListItem> GetList(Type type)
{
FieldInfo[] fields = type.GetFields();
List<MyListItem> list = new List<MyListItem>();
for(int i=1;i<fields.Length;i++)
{
FieldInfo item = fields[i];
object[] objs = item.GetCustomAttributes(AttributeType, false);
string desription;
if (objs != null && objs.Length != 0)
{
DescriptionAttribute da = (DescriptionAttribute)objs[0];
desription = da.Description;
}
else
{
desription = item.Name;
}
int labelID = (int)System.Enum.Parse(type, item.Name);
list.Add(new MyListItem() {Name=desription,Value=labelID.ToString() });
}
return list;
}
}
Code
public class MyListItem
{
public MyListItem(string name, string value)
{
this.Name = name;
this.Value = value;
}
public MyListItem()
{ }
public MyListItem(string name, int value)
{
this.Name = name;
this.Value = value.ToString();
}
public string Name
{ get; set; }
public string Value
{ get; set; }
}
public class MyListItem
{
public MyListItem(string name, string value)
{
this.Name = name;
this.Value = value;
}
public MyListItem()
{ }
public MyListItem(string name, int value)
{
this.Name = name;
this.Value = value.ToString();
}
public string Name
{ get; set; }
public string Value
{ get; set; }
}
显示出来的东西可以放在DescriptionAttribute
改写取得descriptionAttribute 可以用来支持多语言
lovebanyi.cnblogs.com