0

私は列挙型を持っています:-

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

今、私のコントローラーで私が欲しい

  1. 列挙型のリストと
  2. _ アンダースコアをスペースに置き換えます。

そのために:-私が持っている列挙型のリストを取得する

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("_", " ")
                })
            };

しかし、構文エラー (';' がありません) がスローされます。それはちょうど試してみたようなものでしたが。どうすればそれを達成できるか教えてください。

4

2 に答える 2

8

あなたはただできるはずです

Enum.GetNames(typeof(EnumType)).Select(item => item.Replace('_',' '));
于 2013-02-26T07:37:58.453 に答える
0

使用する必要があります

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

その後、for ループ (または類似のもの) を使用して、"_" を " " に置き換えることができます。

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

MSDNを参照してください。

于 2013-02-26T07:38:32.337 に答える