Es ist nicht genau klar, wie Sie das Array durchsuchen möchten. Hier sind einige Alternativen:
alle Gegenstände finden, die genaue Zeichenfolge „Ra“ (gibt Artikel 2 und 3) enthält:
Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))
alle Gegenstände finden mit der genauen Zeichenfolge beginnen „Ra“ (gibt Artikel 2 und 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))
alle Gegenstände finden jeden Fall Version von "ra" enthält (Retourenpositionen 0, 2 und 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))
alle Gegenstände finden mit jedem Fall Version von "ra" ab (Retuns Artikel 0, 2 und 3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))
-
Wenn Sie nicht VB verwenden 9+ dann müssen Sie nicht anonym Funktionen, so müssen Sie eine benannte Funktion erstellen.
Beispiel:
Function ContainsRa(s As String) As Boolean
Return s.Contains("Ra")
End Function
Verbrauch:
Dim result As String() = Array.FindAll(arr, ContainsRa)
mit einer Funktion, die nur für eine bestimmte Zeichenfolge vergleichen, kann nicht immer sehr nützlich ist, so in der Lage sein, eine Zeichenfolge angeben, vergleichen Sie müssten es in eine Klasse setzen, um irgendwo die Zeichenfolge zu speichern:
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
Verbrauch:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)
Sollten Sie nicht 0,2,3 bekommen? Sie machen eindeutig einen Filter ohne Unterscheidung der Groß- und Kleinschreibung. – belgariontheking
Passing in "ra" würde Sie 0, 2 und 3 bekommen. –
Stellen Sie Ihre Frage klarer Groß-und Kleinschreibung oder was? – Shimmy