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,
        }

    }
}
View Code

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的互相转换 枚举转换 、循环读取

 

posted @ 2014-09-28 14:51  IT浪潮之巅  阅读(1132)  评论(0)    收藏  举报
   友情链接: 淘宝优惠券