判断字符串是否在VB.NET中的Enum中

问题描述 投票:0回答:1

我有一个像这样的枚举(在 C# 中)

public enum Cars
{
    Toyota = 'T'
    Honda = 'H'
    Ford= 'F'
}

还有 VB 中 myCar 的变量

 Dim myCarValue As String = "H"

如何检查 myCarValue 是否是 Cars 枚举中的有效值之一,而不需要与电子邮件中的每个值进行比较?有没有办法使用 Contains() 来做到这一点?

c# vb.net enums
1个回答
1
投票

您只能使用枚举中的数字类型。这段代码根本无法编译。你会得到编译器错误:

常量表达式中不能发生从“字符串”到“整数”的转换

您必须选择不同的方法。我建议使用常量和

HashSet(Of String)
来存储它们:

Public Module Cars
    Public Const Toyota = "T", Honda = "H", Ford = "F"

    Private ReadOnly _values As HashSet(Of String) = New HashSet(Of String) From {
        Toyota,
        Honda,
        Ford
    }

    Public Function IsValidCar(carCode As String) As Boolean
        Return _values.Contains(carCode)
    End Function
End Module

现在您可以进行如下检查:

If Cars.IsValidCar("H") Then

End If
© www.soinside.com 2019 - 2024. All rights reserved.