How can I get the enum value if I have the enum string or enum int value. eg: If i have an enum as follows:
public enum TestEnum { Value1 = 1, Value2 = 2, Value3 = 3 }
and in some string variable I have the value "value1" as follows:
string str = "Value1"
or in some int variable I have the value 2 like
int a = 2;
how can I get the instance of enum ? I want a generic method where I can provide the enum and my input string or int value to get the enum instance.
The enum can be of any numeric data type such as byte, sbyte, short, ushort, int, uint, long, or ulong. However, an enum cannot be a string type.
Java provides a valueOf(String) method for all enum types. Thus, we can always get an enum value based on the declared name: assertSame(Element.LI, Element.
Cast Int To Enum may be of some help. Go with the 2nd option. The 1st one can cause an exception if the integer is out of the defined range in your Enumeration. In current example I compare to 'magic number' but in real application I am getting data from integer field from DB.
No, you don't want a generic method. This is much easier:
MyEnum myEnum = (MyEnum)myInt; MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), myString);
I think it will also be faster.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With