0

最初に型を知らずに列挙型を反復処理することは可能ですか?

列挙型の型を表す文字列名をメソッドに渡すとします。

次に、その文字列名から列挙型を取得し、コレクションを反復処理して、列挙型に含まれる名前/値を抽出する必要があります。

4

3 に答える 3

1

リフレクションを使用してそれを行うことができます

List<KeyValuePair<string, object>> GetEnumInfo(string name)
{
    var type = Type.GetType(name);
    return Enum.GetValues(type)
            .Cast<object>()
            .Select(v => new KeyValuePair<string, object>(Enum.GetName(type, v), v))
            .ToList();
}
于 2013-08-05T11:37:03.120 に答える
1

はい、型がわかっている場合は、列挙型の名前と値にアクセスできます。たとえば、次のコード スニペットを参照してください。

string enumTypeName = "qualified enum type name";

var enumType = Type.GetType(enumTypeName);

var values = Enum.GetValues(enumType);
var names  = Enum.GetNames(enumType);

これで、簡単に反復してvaluesnames

于 2013-08-05T11:37:04.217 に答える
0
Enum.GetValues(Type.GetType(yourEnumName, true, true));
于 2013-08-05T11:37:48.563 に答える