C#中的枚举基本操作
/// <summary>
/// 订单审核状态
/// </summary>
public enum GetState
{
[Description("审核中")]
inReview = 1,
[Description("审核通过")]
approve = 2,
[Description("退回")]
return = 0,
}
/// <summary>
/// 枚举字段描述列表
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public static IList<string> GetEnumDescriptionList(Type t)
{
var valueDescList = Enum.GetValues(t).Cast<Enum>().Select(m => GetEnumDescription(m)).ToList();
return valueDescList;
}
/// <summary>
/// 枚举下拉列表
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public static IList<SelectListItem> GetEnumList(Type t)
{
var enumList = Enum.GetValues(t).Cast<Enum>()
.Select(m =>
{
return new SelectListItem()
{
Text = GetEnumDescription(m),
Value = Enum.GetName(t, m)
};
}).ToList();
return enumList;
}
/// <summary>
/// 获取枚举的描述信息(Description特性)
/// </summary>
/// <param name="enumValue">枚举值</param>
/// <returns></returns>
public static string GetEnumDescription(Enum enumValue)
{
Type type = enumValue.GetType();
FieldInfo fi = type.GetField(enumValue.ToString());
object[] attrs = fi.GetCustomAttributes(typeof(DescriptionAttribute), true);
if (attrs.Length > 0)
return ((DescriptionAttribute)attrs[0]).Description;
return "";
}
int 类型转对应的枚举值
(EnumType)model.SaleState
int 类型获取枚举的描述信息
GetEnumDescription((EnumType)model.SaleState)