Parse a string to an Enum value in VB.NET
vb.netEnumsvb.net Problem Overview
How can I parse a string in VB.NET to enum value?
Example I have this enum:
Public Enum Gender
NotDefined
Male
Female
End Enum
how can I convert a string "Male" to the Gender
enum's Male
value?
vb.net Solutions
Solution 1 - vb.net
Dim val = DirectCast([Enum].Parse(GetType(Gender), "Male"), Gender)
Solution 2 - vb.net
See Enum.TryParse.
Solution 3 - vb.net
> how can I convert a string "Male" to the Gender enum's Male value?
The accepted solution returns an Enum object. To return the value you want this solution:
dim MyGender as string = "Male"
dim Value as integer
Value = DirectCast([Enum].Parse(GetType(Gender), MyGender), Integer)
Can also do it this way:
value = cInt([enum].Parse(GetType(Gender), MyGender))
Solution 4 - vb.net
If you want the parse to be case insensitive, you can use the following:
[Enum].Parse(Gender, DirectCast(MyGender, String), True)
This will handle dim MyGender as string = "Male"
or dim MyGender as string = "male"