我使用数据库中的数据动态创建了一些enums
作为.dll
。
我正在寻找将enum
的值设为list
的方法。
当我将每个.dll
的引用添加到项目
eg. MyEnum.value1
我尝试使用Type.GetMembers获取值,但没有运气。
有什么方法可以将enum
中的所有值都放到列表中吗?
更新
我也尝试了Enum.GetValues(),但它出现了错误
'EnumeratedTypes.MyEnum'是'type',但用作'变量'
由于
答案 0 :(得分:5)
使用Enum.GetValues(typeof(EnumeratedTypes.MyEnum))
答案 1 :(得分: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>);
}
答案 2 :(得分: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