0

データベースからのデータenumsを動的に使用していくつかを作成しました。.dll

enumの値を aに取得する方法を探していますlist

.dllそれぞれからの参照をプロジェクトに追加すると、各値に個別にアクセスできます

eg. MyEnum.value1

Type.GetMembersを使用して値を取得しようとしましたが、うまくいきませんでした。

すべての値をenumリストに入れる方法はありますか?

アップデート

Enum.GetValues() も試してみましたが、エラーが発生しました

「EnumeratedTypes.MyEnum」は「型」ですが、「変数」のように使用されます

ありがとう

4

3 に答える 3

5

使用するEnum.GetValues(typeof(EnumeratedTypes.MyEnum))

于 2012-05-15T16:33:19.303 に答える
1
public enum Tree
{
    Trunk
};

Tree.Trunk.EnumToList();

この拡張機能の使用:

public static List<T> EnumToList<T>(this T source)
{
    Type enumType = typeof(T);

    // Can't use type constraints on value types, so have to do check like this
    if (enumType.BaseType != typeof(Enum))
        throw new ArgumentException("T must be of type System.Enum");

    return new List<T>(Enum.GetValues(enumType) as IEnumerable<T>);
}
于 2012-05-15T16:33:14.987 に答える
0

intにキャストし、次のように合計します。

public enum myNums
{
    Alpha = 1,
    Beta = 10,
    Gamma = 100
}

void Main()
{

    var value  = System.Enum.GetValues( typeof( myNums ) )
                           .OfType<myNums>()
                           .Sum (n => (int)n);

    Console.WriteLine ( value ); // 111

}

// Define other methods and classes here
于 2012-05-15T16:37:45.010 に答える