首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Enum上设置空间

如何在Enum上设置空间
EN

Stack Overflow用户
提问于 2009-07-09 04:43:35
回答 18查看 118.7K关注 0票数 69

我想把空间放在我的墓穴上。下面是我的代码示例:

代码语言:javascript
复制
public enum category
{
    goodBoy=1,
    BadBoy
}

我想设置

代码语言:javascript
复制
public enum category
{
    Good Boy=1,
    Bad Boy  
}

当我检索时,我想看到好孩子从枚举中得到的结果

EN

回答 18

Stack Overflow用户

发布于 2015-08-13 12:35:55

您可以使用DataAnnotations来装饰Enum值,因此以下内容是正确的:

代码语言:javascript
复制
using System.ComponentModel.DataAnnotations;

public enum Boys
{
    [Display(Name="Good Boy")]
    GoodBoy,
    [Display(Name="Bad Boy")]
    BadBoy
}

我不知道您在控件中使用的是什么UI框架,但是当您在Razor视图中输入ASP.NET时,HTML.LabelFor MVC可以读取HTML.LabelFor

这里是一种扩展方法

如果您不使用Razor视图,或者您想在代码中获取名称:

代码语言:javascript
复制
public class EnumExtention
{
    public Dictionary<int, string> ToDictionary(Enum myEnum)
    {
        var myEnumType = myEnum.GetType();
        var names = myEnumType.GetFields()
            .Where(m => m.GetCustomAttribute<DisplayAttribute>() != null)
            .Select(e => e.GetCustomAttribute<DisplayAttribute>().Name);
        var values = Enum.GetValues(myEnumType).Cast<int>();
        return names.Zip(values, (n, v) => new KeyValuePair<int, string>(v, n))
            .ToDictionary(kv => kv.Key, kv => kv.Value);
    }
}

然后使用它:

代码语言:javascript
复制
Boys.GoodBoy.ToDictionary()
票数 101
EN

Stack Overflow用户

发布于 2009-07-09 04:50:44

你误解了枚举是用来做什么的。枚举是用于编程目的的,本质上是给一个数字命名。这是为了程序员在阅读源代码时的好处。

代码语言:javascript
复制
status = StatusLevel.CRITICAL; // this is a lot easier to read...
status = 5;                    // ...than this

Enum不是用来显示的,也不应该显示给最终用户。与任何其他变量一样,枚举不能在名称中使用空格。

要将内部值与可以显示给用户的“漂亮”标签关联起来,可以使用字典或哈希。

代码语言:javascript
复制
myDict["Bad Boy"] = "joe blow";
票数 23
EN

Stack Overflow用户

发布于 2016-12-01 17:02:46

代码语言:javascript
复制
using System.ComponentModel;

然后..。

代码语言:javascript
复制
public enum category
{
    [Description("Good Boy")]
    goodboy,
    [Description("Bad Boy")]
    badboy
}

解决了!!

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1101872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档