2012-11-29 272 views
2

我想枚舉運行時輸入在c#中打印枚舉變量的值。 例如,在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! 我該如何解決這個問題?或提供我一個高效的代碼,請..

+1

如果你想縮進它,你的代碼會更容易閱讀。如果您要提供樣本輸入和輸出,這也會很有幫助。 –

+0

@Jon Skeet如果嘗試嘗試你的代碼它說錯誤在c.ReadLine();因爲char不包含'Read'的定義 – janani

+0

這對我的回答會是一個更好的評論* - 但是,無論如何,我已經編輯了它,正如Alexei指出的那樣。 –

回答

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

+0

+1。 'c.ReadLine();'可能應該是'c.ToString()' –

+0

@AlexeiLevenkov:修正,謝謝。 E_OUT_OF_COFFEE。 –

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