No está exactamente claro cómo desea buscar la matriz. Estas son algunas alternativas:
buscar todos los elementos que contienen la cadena exacta "Ra" (devuelve los elementos 2 y 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))
buscar todos los elementos que comienzan con la cadena exacta "Ra" (devuelve los elementos 2 y 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))
buscar todos los elementos que contengan cualquier versión caso de "ra" (devuelve los elementos 0, 2 y 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))
Buscar todos los elementos que empiecen con cualquier versión caso de "ra" (Retuns artículos 0, 2 y 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))
-
Si no está utilizando VB 9+ entonces usted no tiene anónima funciones, por lo que debe crear una función nombrada.
Ejemplo:
Function ContainsRa(s As String) As Boolean
Return s.Contains("Ra")
End Function
Uso:
Dim result As String() = Array.FindAll(arr, ContainsRa)
tiene una función que sólo se puede comparar con una cadena específica no siempre es muy útil, por lo que es capaz de especificar una cadena para comparar para usted tendría que ponerlo en una clase para tener un lugar para almacenar la cadena:
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
Uso:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)
¿No debería obtener 0,2,3? Claramente estás haciendo un filtro que no distingue entre mayúsculas y minúsculas. – belgariontheking
Al pasar en "ra" obtendrá 0, 2 y 3. –
Haga su pregunta más clara sensible a mayúsculas o qué? – Shimmy