如何获得一个枚举类型中所有枚举的数量?我想到两种方法1 通过使用 Enum.GetNames(typeof(EnumName)).Count() 的方式获得数量2 通过扩展方法  public static int Count(this EnumName myEnum) { return 123456; } 获得数量第一种暂时没想到啥问题,第二种的问题是,当枚举修改时,数量要跟着一起改。
大家觉得哪种好?或者还有新的办法?

解决方案 »

  1.   

    由于枚举都是自己定义好的,因此,我的做法是不论任何枚举,都在最后加一个COUNT项。
    enum XXXX
    {
        X1=0,
        X2,
        X3,
        COUNT
    }最后这个等于3
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] Args)
            {
                Console.WriteLine(typeof(DayOfWeek).EnumCount());
            }
        }    static class EnumHelper
        {
            public static int EnumCount(this Type obj)
            {
                return Enum.GetNames(obj).Count();
            }
        }
    }