Search code examples
vb.netselect-case

VB.NET Select Case - what is the correct statement?


Why doesn't the following code work?

Private Function resolveSiteName(ByVal plantName As String, ByVal siteName As String) As Integer
    Dim siteId As Integer = Nothing
    Dim fullName As String = plantName & siteName
    Select Case fullName
        Case fullName.Contains("Example" And "Example2" And "Example3")
            siteId = 0
    End Select
    Return siteId
End Function

I'm guessing my Select Case fullName is wrong, because when debugging it, the conditions are met and it just skips over assigning the siteId.

I also tried just this

Case fullName.Equals("Exactly what full name is")

just to test to see if that would work...and it still skipped over the assigning part.

What am I missing here?


Solution

  • Note that this would not even compile if you'd use an If-clause(which is more appropriate here):

    If fullName.Contains("Example" And "Example2" And "Example3") Then
        ' this doesn't compile since you cannot concat a string with And
        ' you want to check if fullName equals to one of the strings anyway
        siteId = 0
    End If
    

    If you want to check multiple items at once, define a collection, add all to it and then use Contains:

    Dim siteNames = { "Example", "Example2", "Example3" }
    If siteNames.Contains(fullName) Then
        siteId = 0
    End If