目前尚不清楚您要如何搜索数组。以下是一些替代方案:
查找包含确切字符串“Ra”的所有项目(返回项目 2 和 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))
查找以确切字符串“Ra”开头的所有项目(返回项目 2 和 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))
查找包含任何大小写版本“ra”的所有项目(返回项目 0、2 和 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))
查找以任何大小写版本“ra”开头的所有项目(返回项目 0、2 和 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))
-
如果您没有使用 VB 9+,那么您就没有匿名函数,因此您必须创建一个命名函数。
例子:
Function ContainsRa(s As String) As Boolean
Return s.Contains("Ra")
End Function
用法:
Dim result As String() = Array.FindAll(arr, ContainsRa)
拥有一个只能与特定字符串进行比较的函数并不总是很有用,因此要能够指定一个要与之比较的字符串,您必须将它放在一个类中以便在某个地方存储该字符串:
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
用法:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)