VB.NET Select Case — какое правильное утверждение?

Почему следующий код не работает?

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

Я предполагаю, что мой Select Case fullName неверен, потому что при его отладке условия выполняются, и он просто пропускает назначение siteId.

Я тоже пробовал только это

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

просто чтобы проверить, сработает ли это... и он все еще пропустил часть назначения.

Что мне здесь не хватает?


person Brandon    schedule 24.01.2013    source источник
comment
У меня есть не только этот чехол, я просто вырезал лишнее, что не нужно   -  person Brandon    schedule 24.01.2013


Ответы (5)


Обратите внимание, что это даже не скомпилируется, если вы будете использовать If-предложение (которое здесь более уместно):

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

Если вы хотите проверить несколько элементов одновременно, определите коллекцию, добавьте в нее все, а затем используйте Contains:

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

Это тоже должно работать:

Select Case fullName
   Case "Example", "Example2", "Example3"
      siteId = 0
End Select
person Ric    schedule 24.01.2013

Это решает вашу проблему:

Select Case True
    Case fullName.Contains("Example")
        siteId = 0
End Select

Или для вашей второй попытки:

Select Case fullName
    Case "Exactly what full name is"
        siteId = 0
End Select    
person SysDragon    schedule 24.01.2013

Попробуй это:

Select Case fullName
   Case "Example"
      siteId = 0
   Case "Example2"
      siteId = 0
   Case "Example3"
      siteId = 0
End Select
person Steven Ackley    schedule 24.01.2013
comment
Это не сработает, в VB Select Case нет провала. - person Meta-Knight; 24.01.2013

Заменять

Select Case fullName

с

Select Case True
person Isaac Ali    schedule 14.08.2015