It is not clear how you want to search for an array. Here are a few alternatives:
Find all elements containing the exact string "Ra" (returns points 2 and 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))
Find all elements starting with the exact string "Ra" (returns points 2 and 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))
Find all elements containing any version of "ra" (returns points 0, 2, and 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))
Find all items starting with any version of ra version (retuns items 0, 2, and 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))
-
If you are not using VB 9+, then you do not have anonymous functions, so you need to create a named function.
Example:
Function ContainsRa(s As String) As Boolean Return s.Contains("Ra") End Function
Using:
Dim result As String() = Array.FindAll(arr, ContainsRa)
Having a function that can compare only with a specific string is not always very useful, so to be able to specify a string to compare with you, you will have to put it in a class to store the string somewhere:
Public Class ArrayComparer Private _compareTo As String Public Sub New(compareTo As String) _compareTo = compareTo End Sub Function Contains(s As String) As Boolean Return s.Contains(_compareTo) End Function Function StartsWith(s As String) As Boolean Return s.StartsWith(_compareTo) End Function End Class
Using:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)