Không rõ chính xác cách bạn muốn tìm kiếm mảng. Dưới đây là một số lựa chọn thay thế:
Tìm tất cả các mục có chứa các chuỗi chính xác "Ra" (trả về mục 2 và 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))
Tìm tất cả các mục bắt đầu với chuỗi chính xác "Ra" (trả về mục 2 và 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))
Tìm tất cả các mục có chứa bất kỳ phiên bản chữ của "ra" (trả về mục 0, 2 và 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))
Tìm tất cả các mục bắt đầu với bất kỳ phiên bản chữ của "ra" (retuns mục 0, 2 và 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))
-
Nếu bạn không sử dụng VB 9 + sau đó bạn không cần phải ẩn danh các hàm, do đó bạn phải tạo một hàm được đặt tên.
Ví dụ:
Function ContainsRa(s As String) As Boolean
Return s.Contains("Ra")
End Function
Cách sử dụng:
Dim result As String() = Array.FindAll(arr, ContainsRa)
Có một chức năng mà chỉ có thể so sánh với một chuỗi cụ thể không phải lúc nào cũng rất hữu ích, vì vậy để có thể xác định một chuỗi để so sánh để bạn sẽ phải đặt nó trong một lớp học để có một nơi nào đó để lưu trữ chuỗi:
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
Cách sử dụng:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)
Bạn không nên lấy 0,2,3? Bạn rõ ràng đang làm một bộ lọc phân biệt chữ hoa chữ thường. – belgariontheking
Đi qua trong "ra" sẽ giúp bạn 0, 2 và 3. –
Làm cho câu hỏi của bạn rõ ràng hơn hoặc nhạy cảm hơn? – Shimmy