Task[edit]
Find the index of a string (needle) in an indexable, ordered collection of strings (haystack).

Raise an exception if the needle is missing.

If there is more than one occurrence then return the smallest index to the needle.

Extra credit
Return the largest index to a needle that has multiple occurrences in the haystack.

See also
 Search a list of records

' FB 1.05.0 Win64
' Works FB 1.05.0 Linux Mint 64
 
Function tryFindString(s() As String, search As String, ByRef index As Integer) As Boolean
  Dim length As Integer = UBound(s) - LBound(s) + 1
  If length = 0 Then
    index = LBound(s) - 1  '' outside array
    Return False
  End If
  For i As Integer = LBound(s) To UBound(s)
    If s(i) = search Then
      index = i  '' first occurrence
      Return True
    End If
  Next
  index = LBound(s) - 1  '' outside array
  Return False
End Function  
 
Function tryFindLastString(s() As String, search As String, ByRef index As Integer) As Boolean
  Dim length As Integer = UBound(s) - LBound(s) + 1
  If length = 0 Then
    index = LBound(s) - 1  '' outside array
    Return False
  End If
  Dim maxIndex As Integer = LBound(s) - 1  '' outside array
  For i As Integer = LBound(s) To UBound(s)
    If s(i) = search Then
      maxIndex = i
    End If
  Next
  If maxIndex > LBound(s) - 1 Then
    index = maxIndex  '' last occurrence
    Return True
  Else
    Return False
  End If
End Function  
 
Dim haystack(1 To 9) As String = {"Zig", "Zag", "Wally", "Ronald", "Bush", "Krusty", "Charlie", "Bush", "Bozo"}
Dim needle(1 To 4)   As String = {"Zag", "Krusty", "Washington", "Bush"}
 
Dim As Integer index
Dim As Boolean found
For i As Integer  = 1 To 4
  found = tryFindString(haystack(), needle(i), index)
  If found Then
    Print needle(i); " found first at index"; index
  Else
    Print needle(i); " is not present"
  End If
Next
found = tryFindLastString(haystack(), needle(4), index)
If found Then
  Print needle(4); " found last at index"; index
Else
  Print needle(4); " is not present"
End If
Print
Print "Press any key to quit"
Sleep