gpt4 book ai didi

c# - 从字符串中查找枚举类型并将枚举值返回为 List

转载 作者:行者123 更新时间:2023-11-30 22:01:18 26 4
gpt4 key购买 nike

我想创建一个将枚举名称作为字符串发送的 API,它应该将枚举值作为字符串列表返回。例如,我的项目包含 n 个枚举

enum WeekDays{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday }

另一个枚举可能是

enum Colors{ Red,Green,Blue,Yellow }

我的API调用应该是这样的

List<string> GetEnumValuse(string enumName)

因此调用可能像这样 GetEnumValues("WeekDays"),它应该返回枚举值列表。我担心的是我应该使用 switch...case 并找出项目中的所有枚举,相反,有一种方法可以让我将字符串解析为枚举,并找出是否有 WeekDays 或 Colors 的枚举类型,这样我就不需要使用 switch...case。

最佳答案

如果您有枚举的完全限定名称(即命名空间 + 类名),您可以获得这样的结果:

public IEnumerable<string> GetEnumValues(string enumName)
{
foreach (var value in Enum.GetValues(Type.GetType(enumName)))
{
yield return value.ToString();
}
}

这样称呼:

IEnumerable<string> enumValues = GetEnumValues("ConsoleApplication1.Colors");

基本上,您从反射中获取枚举值,然后将它们的名称作为字符串返回。

您确实需要命名空间(在示例中,它是 ConsoleApplication1),以便反射使用此方法找到您的枚举,但这是迄今为止我能想到的最简洁的方法。

关于c# - 从字符串中查找枚举类型并将枚举值返回为 List<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27834288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com