【发布时间】:2020-10-10 02:11:29
【问题描述】:
我正在尝试获取给定枚举的显示名称列表。如果枚举值有显示名称,它应该在列表中,如果没有,则默认名称应该在列表中。所以如果我有一个像这样的枚举:
public enum SourceFromEnum
{
Youtube,
Reddit,
Instagram,
Facebook,
Twitter,
[Display(Name = "News Website")]
NewsSite,
[Display(Name = "Phone or Computer")]
Device,
}
我的函数生成的列表应该与:
List<string> enumDisplayNames = new List<string>()
{
"Youtube",
"Reddit",
"Instagram",
"Facebook",
"Twitter",
"News Website",
"Phone or Computer"
};
我查看了this post,但据我所知,这些问题要么没有提供列表,要么对于我正在尝试做的事情过于复杂。
【问题讨论】:
-
enumDisplayNames 是获取枚举名称时想要的结果吗?
-
是的,我想将
SourceFromEnum粘贴到某个函数中,然后得到与enumDisplayNames相同的东西 -
您找到的帖子确切地告诉您您需要什么。重要的部分是
GetDisplayValue()方法(在接受的答案中)。你可以忽略所有 Razor 的东西。其他答案提供了同一主题的变体,并且通常都适用于您的场景。 -
我同意帖子过于复杂。您可以使用 LINQ 在简单的静态方法中执行此操作。
-
你为什么不用字典?
标签: c# generics enums data-annotations