【问题标题】:Enumeration in C#C#中的枚举
【发布时间】:2012-11-29 06:39:41
【问题描述】:

我正在尝试枚举运行时输入以在 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 中。我需要显示用户提供的字符串的整数值。 上面的代码显示了一些错误,如下所示: 我该如何纠正这个?或者请给我一个有效的代码..

【问题讨论】:

  • 如果您缩进,您的代码会非常更易于阅读。如果您提供示例输入和输出,也会很有帮助。
  • @Jon Skeet 如果尝试尝试您的代码,它会在 c.ReadLine(); 中显示错误因为 char 不包含“读取”的定义
  • 那会是一个更好的评论对我的回答 - 但是,正如阿列克谢指出的那样,我现在已经编辑了它。

标签: c# .net enums foreach enumeration


【解决方案1】:

认为你想要一些类似的东西:

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

【讨论】:

    【解决方案2】:

    检查此代码。够了

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

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多