Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 834
Brandon Avatar asked Apr 07 '26 18:04

Brandon


2 Answers

This should work too:

Select Case fullName
   Case "Example", "Example2", "Example3"
      siteId = 0
End Select
like image 198
Ric Avatar answered Apr 10 '26 02:04

Ric


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
like image 38
Tim Schmelter Avatar answered Apr 10 '26 01:04

Tim Schmelter



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!