gpt4 book ai didi

c# - 如何从 StringValue 属性的值解析枚举

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:49 25 4
gpt4 key购买 nike

无法从其 StringValue 属性解析为枚举对象。

枚举:

public enum StatusColor
{
[StringValue("#FFFFFF")]
None,

[StringValue("#5DB516")]
Green,

[StringValue("#F3212A")]
Red,

[StringValue("#FFFFFF")]
White
}

解析尝试 1

string inputHtmlColor = "#F3212A"; // input
StatusColor outColor; // output
Enum.TryParse(inputHtmlColor , true, out outColor);

解析尝试2:

string inputHtmlColor = "#F3212A"; //input
StatusColor outColor = Enum.Parse(typeof(StatusColor), inputHtmlColor, true);

两个代码都不起作用,代码总是选择 StausColor.None(第一个)。如何获得正确的 StatusColor 枚举对象?

最佳答案

应该这样做:

public StatusColor GetColor(string color)
{
return
Enum.GetValues(typeof(StatusColor))
.Cast<StatusColor>()
.First(x => ((StringValueAttribute)typeof(StatusColor)
.GetField(x.ToString())
.GetCustomAttribute(typeof(StringValueAttribute))).Value == color);
}

关于c# - 如何从 StringValue 属性的值解析枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56437379/

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