假设我有一个带有以下代码的控制台应用程序:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
...
'site/image/<id:^(\w+/){1}(\w+/){0,9}\w+\.\w+$ >' => 'site/image',
...
,
],
如果 input 与enum中的成员名称具有相同的值,我希望能够从 FoodItems 中的特定成员获取值;即当输入是&#34; banana&#34;时得到1。如何处理这段代码呢?
答案 0 :(得分:0)
我不知道我是否理解得很好:你希望用户写一些东西,如果这个东西是你的Enum中的一个单词,那么输出将是Enum&中单词的数字&#34; #34 ;?例如,如果我写banana,应用程序将写入1。 如果这是你想要的,你可以这样轻松地做到这一点:
If input = FoodItems.banana.ToString() Then Console.WriteLine(FoodItems.banana)
Console.ReadLine()
如果要检查枚举中的所有元素,则必须选择案例:
Sub Main()
Dim input As String = Console.ReadLine()
Select Case input
Case FoodItems.apple.ToString()
Console.WriteLine(FoodItems.apple)
Case FoodItems.banana.ToString()
Console.WriteLine(FoodItems.banana)
Case FoodItems.pineapple.ToString()
Console.WriteLine(FoodItems.pineapple)
End Select
Console.ReadLine()
End Sub
可能有更好的方法,但我会这样做。
答案 1 :(得分:0)
你可以试试这个 - 它对我来说很好。如果字符串是枚举,则下面的函数返回枚举索引,否则返回-1。
<Flags> Friend Enum test
banana
apple
orange
pear
End Enum
Private Function ReturnEnum(inputString As String) As Integer
Dim a As test
Try
a = test.Parse(GetType(test), inputString)
Catch
Return -1
End Try
Return CInt(a)
End Function