C#中的枚举

时间:2012-11-29 06:39:42

标签: c# .net enums foreach enumeration

我试图枚举运行时输入以在c#中打印枚举变量的值。 例如,

class Program
{
   enum Alphabets { a = 1, b, c, d, e, f, g, h }

   public static void Main(String[] args)
   {
       string s = Console.ReadLine();

       foreach(char c in s)
       {
           foreach(int i in Enum.GetValues(typeof(Alphabets)))
              Console.WriteLine(s[i]);
       }

       Console.ReadKey();
   }
}

我将用户输入存储在String中。我需要显示用户提供的字符串的整数值。 上面的代码显示了如下错误: Index error! 我怎么能纠正这个?或者请给我一个有效的代码..

2 个答案:

答案 0 :(得分:5)

认为你想要这些东西:

string line = Console.ReadLine();
foreach (char c in line)
{
    string name = c.ToString();
    Alphabets parsed = (Alphabets) Enum.Parse(typeof(Alphabets), name);
    Console.WriteLine((int) parsed);
}

因此,这会将每个字符转换为字符串,并尝试将其解析为Alphabets的成员。然后,只需通过强制转换将每个已解析的值转换为int

答案 1 :(得分:0)

检查此代码。这够了

 enum Alphabets { a = 1, b, c, d, e, f, g, h , i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z }

        public static void Main(String[] args)
        {
            string s = Console.ReadLine();

            foreach (char c in s)
            {
                Alphabets parsed = (Alphabets)Enum.Parse(typeof(Alphabets), c.ToString());
                 Console.WriteLine((int)parsed);
            }

            Console.ReadKey();
        }