2016-04-13 22 views
1

私は特定の列挙型に変数_tablenameを変換する必要があり、すなわちのappSettingsにC#の列挙型の型変換

_tablename = ConfigurationManager.AppSettings.Get("Tablename"); 

を変数を持っています。私は、C#enumでコンストラクタを使用することはできないことを理解しています。

ご協力いただければ幸いです。

+3

をどのようにあなたの列挙型は次のように見えますか?また、 '_tablename'値は何ですか? – Ian

+4

['Enum.TryParse'](https://msdn.microsoft.com/en-us/library/system.enum.tryparse(v = vs.110).aspx)? –

+0

_tablenameのタイプは何ですか?それがintの場合、その値が列挙型の値の1つと一致する場合、それをあなたが望む列挙型にキャストすることができます。以前に示唆したように、Enum.TryParseを試すこともできます。 – ManoDestra

答えて

0

はこちらをご覧:

http://www.dotnetperls.com/enum-parse

using System; 

class Program 
{ 
    enum PetType 
    { 
    None, 
    Cat = 1, 
    Dog = 2 
    } 

    static void Main() 
    { 
    // A. 
    // Possible user input: 
    string value = "Dog"; 

    // B. 
    // Try to convert the string to an enum: 
    PetType pet = (PetType)Enum.Parse(typeof(PetType), value); 

    // C. 
    // See if the conversion succeeded: 
    if (pet == PetType.Dog) 
    { 
     Console.WriteLine("Equals dog."); 
    } 
    } 
} 
0

あなたが解析する必要があります。たとえば、あなたが列挙Color持っている場合:

enum Color 
{ 
    Red, 
    Yellow, 
    Green 
} 

をあなたはこのようなTryParse使用できます。

Color myColor; 

if (Enum.TryParse<Color>("Red", out myColor)) 
{ 
    // successfully parsed. 
}