在VB.NET中将字符串解析为Enum值

jer*_*oft 63 vb.net enums

如何在VB.NET中解析字符串以枚举值?

示例我有这个枚举:

Public Enum Gender
    NotDefined
    Male
    Female
End Enum
Run Code Online (Sandbox Code Playgroud)

如何将字符串"Male"转换为Gender枚举Male值?

Kam*_*rey 122

Dim val = DirectCast([Enum].Parse(GetType(Gender), "Male"), Gender)
Run Code Online (Sandbox Code Playgroud)

  • 在.NET 4.0中,语法很简单:`Parse(enumType As System.Type,value As String)As Object` (2认同)
  • 他要求枚举的值,但是这个片段只返回一个基于字符串的Enum对象.应该是:`DirectCast([Enum] .Parse(GetType(性别),"男"),整数)` (2认同)

Ant*_*lev 18

Enum.TryParse.

  • @David:Enum.TryParse()在.NET 4中可用 (10认同)

Max*_*ges 5

如何将字符串“Male”转换为 Gender 枚举的 Male 值?

接受的解决方案返回一个 Enum 对象。要返回您想要此解决方案的值:

dim MyGender as string = "Male"
dim Value as integer
Value = DirectCast([Enum].Parse(GetType(Gender), MyGender), Integer)
Run Code Online (Sandbox Code Playgroud)

也可以这样做:

value = cInt([enum].Parse(GetType(Gender), MyGender))
Run Code Online (Sandbox Code Playgroud)