0

我已经创建了一些enums动态.dll使用数据库中的数据。

我正在寻找一种方法来获取 a 的enumlist

当我将每个值的引用添加.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 和 sum,例如:

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 回答