如何将以下枚举转换为字符串列表?
[Flags]
public enum DataSourceTypes
{
None = 0,
Grid = 1,
ExcelFile = 2,
ODBC = 4
};
我找不到这个确切的问题,这个Enum to List是最接近的,但我特别想要List<string>
使用Enum
的静态方法GetNames
。它返回一个GetNames
,如下所示:
string[]
如果要创建仅对一种类型的Enum.GetNames(typeof(DataSourceTypes))
执行仅此操作并将该数组转换为enum
的方法,则可以编写如下内容:
List
您需要在类的顶部使用public List<string> GetDataSourceTypes()
{
return Enum.GetNames(typeof(DataSourceTypes)).ToList();
}
来使用.ToList()
我想添加另一个解决方案:就我而言,我需要在下拉按钮列表项中使用一个Enum组。因此它们可能有空间,即需要更多用户友好的描述:
Using System.Linq;
在帮助程序类(HelperMethods)中,我创建了以下方法:
public enum CancelReasonsEnum
{
[Description("In rush")]
InRush,
[Description("Need more coffee")]
NeedMoreCoffee,
[Description("Call me back in 5 minutes!")]
In5Minutes
}
[当您呼叫此助手时,您将获得项目描述的列表。
public static List<string> GetListOfDescription<T>() where T : struct
{
Type t = typeof(T);
return !t.IsEnum ? null : Enum.GetValues(t).Cast<Enum>().Select(x => x.GetDescription()).ToList();
}
添加:无论如何,如果您想实现此方法,则需要:GetDescription扩展枚举。这就是我用的。
List<string> items = HelperMethods.GetListOfDescription<CancelReasonEnum>();