我下面有枚举,我想根据分配给它的值来获取其元素的Display属性。
我需要创建一个函数,在该函数中我需要传递一个值(“ Economic”为1),它将返回相关元素的Display属性。
public enum ProbabilityNames
{
[Display(Name = "Economic Probability")]
Economic = 1,
[Display(Name = "Reliability Probability")]
Reliability = 2
}
您可以为此使用反射:
public static class ProbabilityNamesExtensions
{
public static DisplayAttribute GetDisplay(this ProbabilityNames value) =>
typeof(ProbabilityNames)
.GetField(Enum.GetName(typeof(ProbabilityNames), value))
.GetCustomAttributes(false)
.SingleOrDefault(attr => attr is DisplayAttribute) as DisplayAttribute;
public static string GetDisplayName(this ProbabilityNames value) =>
value.GetDisplay()?.Name;
}
您可以像这样使用它:
ProbabilityNames.Economic.GetDisplay();
或者,如果您需要基于int值获取显示,则可以将其强制转换为:
((ProbabilityNames)1).GetDisplay();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句