2

私は列挙型を持っています

public enum Test {a = 1, b, c, d, e }

次に、「a」をパラメーターとして渡すメソッドがありますが、対応する値を列挙型から取得Integerし、メソッドから値を返す必要があります

public int Getvalue(string text)        
{                
    int value = //Need to convert text in to int value.    
    return value;   
}

「a」または「b」または「c」として渡しtextていますが、結果として 1、2、または 3 が必要です。オンラインで見つかったいくつかの解決策を試しましたが[Description]、値を取得するために列挙型にタグを追加する必要があるようです。

C#で列挙型の記述から値を取得することは可能ですか?

4

3 に答える 3

3

列挙型の値を文字列として渡す限り、説明タグを追加する必要はaありませbん。お気に入り:Test

var value = Enum.Parse(typeof(Test), "a");
int integerValue = (int)value;

またはEnum.TryParse、無効な入力文字列の場合に例外を発生させない which を使用できます。お気に入り:

Test temp;
int integerValue;
if (Enum.TryParse("a", out temp))
{
    integerValue2 = (int)temp;
}
于 2013-05-22T12:05:08.843 に答える
3

Framework >= 4.0 の場合、Enum.TryParseを使用できます

public int GetValue(string text)
{
    Test t;
    if (Enum.TryParse(text, out t)
        return (int)t;       
    // throw exception or return a default value
}
于 2013-05-22T12:05:43.323 に答える