How to set space on Enum
c#
Solution
You can decorate your Enum values with `DataAnnotations`, so the following is true:
using System.ComponentModel.DataAnnotations;
public enum Boys
{
[Display(Name="Good Boy")]
GoodBoy,
[Display(Name="Bad Boy")]
BadBoy
}
I'm not sure what UI Framework you're using for your controls, but ASP.NET MVC can read `DataAnnotations` when you type `HTML.LabelFor` in your Razor views.
Here's an Extension method
If you are not using Razor views or if you want to get the names in code:
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);
}
}
Then use it:
Boys.GoodBoy.ToDictionary()
Problem
I want to set the space on my enum. Here is my code sample: ``` public enum category { goodBoy=1, BadBoy } ``` I want to set ``` public enum category { Good Boy=1, Bad Boy } ``` When I retrieve I want to see Good Boy result from the enum