Get enum from enum attribute

Total Post:101

Points:709
C# 
C#
 1607  View(s)
Ratings:
Rate this:

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).

  1. Post:145

    Points:1019
    Re: Get enum from enum attribute

    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;
    }

      Modified On Apr-03-2018 06:17:09 AM

Answer