11

This is my enum.

public enum ContractType
{
    [Display(Name = "Permanent")]
    Permanent= 1,

    [Display(Name = "Part Time")]
    PartTime= 2,

}

I try to get display name using below code.

 string x = Enum.GetName(typeof(ContractType), 2);

But it is return "PartTime" always. Actually I want to get the name of display attribute. For above example x should be assigned Part Time

I saw there are solutions which having huge code. Doesn't this have a simple/one line solution?

Please show me a direction.

1

1 Answer 1

28

Given an enum

public enum ContractType
{
   [Display(Name = "Permanent")]
   Permanent= 1,

   [Display(Name = "Part Time")]
   PartTime //Automatically 2 you dont need to specify
}

Custom method to get the data annotation display name.

//This is a extension class of enum
public static string GetEnumDisplayName(this Enum enumType)
{
    return enumType.GetType().GetMember(enumType.ToString())
                   .First()
                   .GetCustomAttribute<DisplayAttribute>()
                   .Name;
}

Calling GetDisplayName()

ContractType.Permanent.GetEnumDisplayName();

Hope this helps :)

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.