C# uld为此制定扩展方法。我已经发布了一个例子。希望有帮助。.ToDescription()似乎不存在。也许这是指的代码从? public enum category { goodBoy=1, BadBoy } public enum ca

C# uld为此制定扩展方法。我已经发布了一个例子。希望有帮助。.ToDescription()似乎不存在。也许这是指的代码从? public enum category { goodBoy=1, BadBoy } public enum ca,c#,C#,uld为此制定扩展方法。我已经发布了一个例子。希望有帮助。.ToDescription()似乎不存在。也许这是指的代码从? public enum category { goodBoy=1, BadBoy } public enum category { Good Boy=1, Bad Boy } status = StatusLevel.CRITICAL; // this is a lot easier to read... status = 5;

uld为此制定扩展方法。我已经发布了一个例子。希望有帮助。
.ToDescription()
似乎不存在。也许这是指的代码从?
public enum category
{
    goodBoy=1,
    BadBoy
}
public enum category
{
    Good Boy=1,
    Bad Boy  
}
status = StatusLevel.CRITICAL; // this is a lot easier to read...
status = 5;                    // ...than this
myDict["Bad Boy"] = "joe blow";
public enum category
{
   good_Boy=1,
   Bad_Boy
}
using System.ComponentModel.DataAnnotations;

public enum Boys
{
    [Display(Name="Good Boy")]
    GoodBoy,
    [Display(Name="Bad Boy")]
    BadBoy
}
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);
    }
}
Boys.GoodBoy.ToDictionary()
    public enum MyEnum
    {
        My_Word,
        Another_One_With_More_Words,
        One_More,
        We_Are_Done_At_Last
    }

    internal class Program
    {
        private static void Main(string[] args)
        {
            IEnumerable<MyEnum> values = Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>();
            List<string> valuesWithSpaces = new List<string>(values.Select(v => v.ToString().Replace("_", " ")));

            foreach (MyEnum enumElement in values)
                Console.WriteLine($"Name: {enumElement}, Value: {(int)enumElement}");

            Console.WriteLine();
            foreach (string stringRepresentation in valuesWithSpaces)
                Console.WriteLine(stringRepresentation);
        }
    }
using System.ComponentModel;
public enum category
{
    [Description("Good Boy")]
    goodboy,
    [Description("Bad Boy")]
    badboy
}
using System.ComponentModel.DataAnnotations;

public enum Boys
{
[Description("Good Boy")]
GoodBoy = 1,
[Description("Bad Boy")]
BadBoy = 2
}
var enumValue = Boys.GoodBoy;
string stringValue = enumValue.ToDescription();
public enum MyEnum { With_Space, With_Two_Spaces } //I store spaces as underscore. Actual values are 'With Space' and 'With Two Spaces'

public MyEnum[] arrayEnum = (MyEnum[])Enum.GetValues(typeof(MyEnum));

string firstEnumValue = String.Concat(arrayEnum[0].ToString().Replace('_', ' ')) //I get 'With Space' as first value
string SecondEnumValue = String.Concat(arrayEnum[1].ToString().Replace('_', ' ')) //I get 'With Two Spaces' as second value
string.Join(" ", Regex.Split(v.ToString(), @"(?<!^)(?=[A-Z])"));
var values = Enum.GetValues(typeof(Category));
var ret = new Dictionary<int, string>();

foreach (Category v in values)
{
   ret.Add((int)v, string.Join(" ", Regex.Split(v.ToString(), @"(?<!^)(?=[A-Z])")));
} 
internal enum TravelClass
{
    [Description("Economy With Restrictions")]
    EconomyWithRestrictions,
    [Description("Economy Without Restrictions")]
    EconomyWithoutRestrictions
}
internal static class Extensions
{
    public static string ToDescription(this Enum value)
    {
        FieldInfo field = value.GetType().GetField(value.ToString());
        DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
        return attribute == null ? value.ToString() : attribute.Description;
    }
}
var enumValue = TravelClass.EconomyWithRestrictions;
string stringValue = enumValue.ToDescription();