C#读取Enum内容
Enum放入类中和方法同级别。
示例一:
enum WeekDay { Sun=1, Mon=2, Tue=3, Wed=4, Thi=5, Fri=6, Sat=7 }
读取:
foreach (WeekDay c in (WeekDay [])Enum.GetValues(typeof(WeekDay ))) { Console.Write(String.Format("{0}是一周第{1}天",c.ToString(),(int)c)); }
示例二:
类中Enum
using System; using System.Reflection; using System.ComponentModel; using System.Collections; namespace XXX.Common { /// <summary> /// 枚举定义类及其调用封装 /// </summary> public class AppEnum { #region 本身提供的通用方法 /// <summary> /// 根据枚举类型得到所有的枚举值 /// </summary> /// <param name="t"></param> /// <returns></returns> public static SortedList GetStatus(Type t) { SortedList list = new SortedList(); Array a = Enum.GetValues(t); for (int i = 0; i < a.Length; i++) { string enumName = a.GetValue(i).ToString(); int enumKey = (int)Enum.Parse(t, enumName); string enumDescription = GetDescription(t, enumKey); list.Add(enumKey, enumDescription); } return list; } /// <summary> /// 根据枚举类型及值得到对应的名字 /// </summary> /// <param name="t"></param> /// <param name="v"></param> /// <returns></returns> private static string GetName(Type t, object v) { try { return Enum.GetName(t, v); } catch { return "UNKNOWN"; } } /// <summary> /// 返回指定枚举类型的指定值的描述 /// </summary> /// <param name="t">枚举类型</param> /// <param name="v">枚举值</param> /// <returns></returns> public static string GetDescription(Type t, object v) { try { FieldInfo fi = t.GetField(GetName(t, v)); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); return (attributes.Length > 0) ? attributes[0].Description : GetName(t, v); } catch { return "UNKNOWN"; } } #endregion /// <summary> /// 订单状态 /// </summary> public enum SaleOrderBillStatus { /// <summary> /// 未付款0 /// </summary> [Description("未付款")] WaitPay0 = 0, //推荐使用 /// <summary> /// 等待发货 /// </summary> [Description("等待发货")] WaitDispatching = 2, /// <summary> /// 已发货 /// </summary> [Description("已发货")] Dispatched = 3, /// <summary> /// 交易成功 /// </summary> [Description("交易成功")] Success = 4, /// <summary> /// 已评价 /// </summary> [Description("已评价")] Evaluate = 5, /// <summary> /// 退款中 /// </summary> [Description("退款中")] Refundment = 6, /// <summary> /// 退款成功 /// </summary> [Description("退款成功")] RefundmentCompleted = 7, /// <summary> /// 订单取消 /// </summary> [Description("订单取消")] Cancel = 12, /// <summary> /// 订单过期 /// </summary> [Description("订单过期")] Expire = 13, /// <summary> /// 订单发货中 /// </summary> [Description("发货中")] Delivery = 14, /// <summary> /// 同步到 发网 后处于这个状态 /// </summary> [Description("分拣中")] SortingAndPacking = 15, } } }
Ajax方法获取:
/// <summary> /// 获取订单状态列表 /// </summary> /// <param name="context"></param> /// <returns></returns> private string GetSaleOrderBillStatusList(HttpContext context) { ArrayList array = new ArrayList(); SortedList list = AppEnum.GetStatus(typeof(AppEnum.SaleOrderBillStatus)); array.Add(list); return XX.Common.SystemUtility.SerializeObject(array); }
返回的json字符串如下:
[{"1":"未付款","2":"等待发货","3":"已发货","4":"交易成功"}]
站外扩展:
C# Enum,Int,String的互相转换 枚举转换 、循环读取

浙公网安备 33010602011771号