解决方案 1
通用枚举到列表转换器 (C#) 一个用于实用程序库...
它采用枚举类型并返回一个用每个枚举项填充的通用列表。
public static List<T> EnumToList<T>()
{
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");
Array enumValArray = Enum.GetValues(enumType);
List<T> enumValList = new List<T>(enumValArray.Length);
foreach (int val in enumValArray) {
enumValList.Add((T)Enum.Parse(enumType, val.ToString()));
}
return enumValList;
}
解决方案 2
这将返回IEnumerable<SomeEnum>
一个枚举的所有值。
Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>();
如果你想让它成为一个List<SomeEnum>
,只需.ToList()
在.Cast<SomeEnum>()
.
public static List<T> CreateEnumList<T>(Enum enumeration)
{
return Enum.GetValues(typeof(T)).Cast<T>().ToList();
}
在此处查看:如何将枚举转换为 C# 中的列表?