Advertise with us

Get enum from enum attribute

public enum Als

{

    [StringValue("Beantwoord")] Beantwoord = 0,

    [StringValue("Niet beantwoord")] NietBeantwoord = 1,

    [StringValue("Geselecteerd")] Geselecteerd = 2,

    [StringValue("Niet geselecteerd")] NietGeselecteerd = 3,

}

public class StringValueAttribute : Attribute

{

    private string _value;

    public StringValueAttribute(string value)

    {

        _value = value;

    }

 

    public string Value

    {

        get { return _value; }

    }

}

And I would like to put the value from the item I selected of a combobox into a int:

int i = (int)(Als)Enum.Parse(typeof(Als), (string)cboAls.SelectedValue); //<- WRONG

Is this possible, and if so, how? (the StringValue matches the value selected from the combobox).

Last updated:12/9/2013 11:57:29 PM

1 Answers

ezra heywood
ezra heywood

Hi Pravesh,

I'm using the DescriptionAttribute from Microsoft and the following extension method:

public static string GetDescription(this Enum value)
{
    if (value == null)
    {
        throw new ArgumentNullException("value");
    }
    string description = value.ToString();
    FieldInfo fieldInfo = value.GetType().GetField(description);
    DescriptionAttribute[] attributes =
       (DescriptionAttribute[])
     fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
    if (attributes != null && attributes.Length > 0)
    {
        description = attributes[0].Description;
    }
    return description;
}

Answer