Link to home
Start Free TrialLog in
Avatar of raterus
raterusFlag for United States of America

asked on

Convert Enum to/from string

I need to be able to do two things, convert a string value to the enum integer
an
convert an integer to the enum string value

e.g.


Public Enum MyEnum
  A = 1
  B = 2
  C = 3
  D = 4
  E = 5
  F = 6
End Enum
 
Dim columnInt as integer = ConvertToInteger("B") 'returns 2
Dim columnStr as string = ConvertToString(2+3) 'returns "E"

Open in new window

Avatar of Toms Edison
Toms Edison
Flag of India image

You will have to write switch case statement inside the functions to return appropriate values
ASKER CERTIFIED SOLUTION
Avatar of raterus
raterus
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of HooKooDooKu
HooKooDooKu

Write the code for ConvertToInteger and ConvertToString with Select Case

However, the thing I usually like to do is define the functions to convert ENum to String and String to Enum and forget about the actual underlaying values.


Public Enum MyEnum
  MyEnum_Invalid = 0
  A = 1
  B = 2
  C = 3
  D = 4
  E = 5
  F = 6
End Enum
 
Public Function MyEnumToString( Value as MyEnum ) as String
    Select Case Value
        Case A: MyEnumToString = "A"
        Case B: MyEnumToString = "B"
        Case C: MyEnumToString = "C"
        Case D: MyEnumToString = "D"
        Case E: MyEnumToString = "E"
        Case F: MyEnumToString = "F"
        Case Else: MyEnumToString = ""
    End Select
End Function
 
Public Function StringToMyEnum( Value as String ) as MyEnum
    Select Case Value
        Case "A": StringToMyEnum = A
        Case "B": StringToMyEnum = B
        Case "C": StringToMyEnum = C
        Case "D": StringToMyEnum = D
        Case "E": StringToMyEnum = E
        Case "F": StringToMyEnum = F
        Case Else: StringToMyEnum = MyEnum_Invalid
    End Select
End Function
 
*** If you want to stick with Integers and Strings, then try this ***
 
Public Function ConvertToInteger( Value as string ) as Integer
    Select Case Left( Value,1 )
        Case "A": ConvertToInteger = 1
        Case "B": ConvertToInteger = 2
        Case "C": ConvertToInteger = 3
        Case "D": ConvertToInteger = 4
        Case "E": ConvertToInteger = 5
        Case "F": ConvertToInteger = 6
        Case Default: ConvertToInteger = 0
    End Select
End Function
 
Public Function ConvertToString( Value as Integer ) as String
    Select Case Value
        Case 1: ConvertToString = "A"
        Case 2: ConvertToString = "B"
        Case 3: ConvertToString = "C"
        Case 4: ConvertToString = "D"
        Case 5: ConvertToString = "D"
        Case 6: ConvertToString = "F"
        Case Default: ConvertToString = ""
    End Select
End Function

Open in new window

Thats good one. I did not know that before. Thank you raterus