日期:2014-05-17  浏览次数:21195 次

遍历Enum
现有多个Enum,打算写个函数把它转换成字符串JSON格式
例如:
enum A{
  a = 1,
  b = 2
}

enum B{
  c = 3,
  d = 4
}

想得到2个JSON格式的字符串{a = 1, b = 2} {c = 3, d = 4}

要怎么弄?
------最佳解决方案--------------------
  string str = "{";
            Type tp = Type.GetType("命名空间.A");
            foreach (string s in Enum.GetNames(tp))
            {
                str += s + "=" + (int)Enum.Parse(tp, s) + ",";
            }
            str = str.TrimEnd(',') + "}";

B也同上
------其他解决方案--------------------
 foreach(A x in Enum.GetValues(typeof(A)))
Console.WriteLine("{0}={1}",x,(int)x);

------其他解决方案--------------------
string xx;
 foreach (A  A in Enum.GetValues(typeof(A)))
{
              
   xx+=string.Format("{0}={1},",A.ToString(),(int)A);          
}
xx=xx.TrimEnd(',');
------其他解决方案--------------------
引用:
string str = "{";
            Type tp = Type.GetType("命名空间.A");
            foreach (string s in Enum.GetNames(tp))
            {
                str += s + "=" + (int)Enum.Parse(tp……


这个可以,只要写一个函数。
------其他解决方案--------------------
void Main()
{
string result =string.Format("{{{0}}}",string.Join(",",Enum.GetValues(typeof(A)).Cast<A>().Select(a=>string.Format("{0}={1}",a,(int)a)).ToArray()));
Console.WriteLine(result);
}
enum A{
  a = 1,
  b = 2
}