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

ユーザー入力をStringに保存しました。ユーザーから提供された文字列の整数値を表示する必要があります。上記のコードは、次のようなエラーを示しています インデックスエラー! 。これを修正するにはどうすればよいですか?または、効率的なコードを提供してください。

4

2 に答える 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);
}

したがって、これは各文字を文字列に変換し、それをのメンバーとして解析しようとしますAlphabetsint解析された各値は、キャストするだけで変換されます。

于 2012-11-29T06:42:56.940 に答える
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();
        }
于 2012-11-29T10:04:31.297 に答える