如何将枚举转换为列表并将'_'替换为''(空格)

时间:2013-02-26 07:33:37

标签: c# enums

我有一个枚举: -

    public enum EnumType
    {
        Type1_Template,
        Type2_Folders,
        Type3_Template,
        Type1_Folders,
    }

现在,在我的控制器中我想要

  1. Enum列表和
  2. 用空格替换_下划线。
  3. 因此: - 获取Enum列表

    return new Models.DTOObject()
                {
                    ID = model.id,
                    Name = model.Name,
                    Description = model.Description,
                    //Type is the property where i want the List<Enum> and replace the underscore with space
                    Type = Enum.GetValues(typeof(EnumType)).Cast<EnumType>().ToList()
                };
    

    但是现在,我正在尝试这样的事情(可能听起来很奇怪): -

    return new Models.Customers()
                {
                    ID = model.id,
                    Name = model.Name,
                    Description = model.Description,
                    //Type is the property where i want the List<Enum> and replace the underscore with space
                    Type = Enum.GetValues(typeof(EnumType)).Cast<EnumType>().ToList().Select(e => new
                    {
                        Value = e,
                        Text = e.ToString().Replace("_", " ")
                    })
                };
    

    但会抛出语法错误(&#39 ;;&#39;缺失)。虽然它只是尝试了一些东西。请让我知道如何实现它。

2 个答案:

答案 0 :(得分:7)

你应该能够做到

Enum.GetNames(typeof(EnumType)).Select(item => item.Replace('_',' '));

答案 1 :(得分:0)

你应该使用

string[] names = Enum.GetNames(typeof(EnumType));

之后你可以使用for循环(或类似的东西)并将“_”替换为“”。

for(int i = 0; i < names.Length; i++){
   names[i].Replace('_',' ');
}

MSDN;