【发布时间】:2022-08-24 00:31:46
【问题描述】:
我尝试获取 [EnumMember] 中的值列表,但它不起作用。它返回枚举名称列表,而不是 [EnumMember] 中的值。
我举个例子来说明我想要什么:
CarEnum.cs
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum CarEnum
{
[EnumMember(Value = @\"Rolls Royce\")]
RollsRoyce=1,
[EnumMember(Value = @\"Honda\")]
Honda = 2,
[EnumMember(Value = @\"Mercedes Benz\")]
MercedesBenz = 3,
}
这是我尝试获取值的代码:
var carList = Enum.GetValues(typeof(CarEnum)).Cast<CarEnum>()
.Select(x => x.ToString())
.ToList();
carList 返回[\"RollsRoyce\", \"Honda\", \"MercedesBenz\"] 的列表。
我希望它返回[\"Rolls Royce\", \"Honda\", \"Mercedes Benz\"](值包含品牌名称中的空格)。
如果你能帮助我,请告诉我。
谢谢。
-
enum.ToString()返回枚举成员的名称,而不是EnumMember属性的值。您将需要使用反射来查找与枚举的每个成员关联的 EnumMemberAttribute 的值。 -
你用谷歌搜索过这个吗? techiedelight.com/convert-enum-to-list-csharp/…
-
@Andrew是的,我有。这些示例使用简单的枚举,我们以字符串或整数形式获取星期日期。他们不像我那样使用 [EnumMember]。
-
嗨@phuzi 你有任何示例代码来展示你的建议或一些我可以看看的帖子吗?谢谢。