C#中的枚举类型

3

我正在尝试枚举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();
   }
}

我将用户输入存储在字符串s中。我需要显示用户提供的字符串的整数值。 上面的代码显示了一些错误,如下所示: Index error! 我该怎么改正它?或者请给我一个更有效的代码。


1
如果您能缩进代码,它将变得更加易于阅读。如果您能提供样例输入和输出,那将会非常有帮助。 - Jon Skeet
@Jon Skeet 如果尝试运行您的代码,它会显示 c.ReadLine() 中出现错误,因为 char 不包含“Read”的定义。 - janani
那本来是对我的答案更好的评论 - 但是我已经编辑过了,因为Alexei指出了它。 - Jon Skeet
2个回答

6
我认为您想要以下内容:

我认为您想要以下内容:

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


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();
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接