1

わかりましたので、大きな文字列に配列内の他の多くの文字列の 1 つ (いずれか) が含まれているかどうかを確認したいと思います。

その配列をループして、「if largestring.contains(arrayitem) do something then exit for」を実行できますが、特に文字列の配列が非常に大きい場合、これはおそらく非効率的だと思います。

さらに、パフォーマンスは、見つかった文字列の配列内の位置によって異なります。これを行うより良い方法はありますか?

4

2 に答える 2

3

私が思う最善のアプローチは、正規表現を使用することです

Imports System.Text.RegularExpressions

Dim arrayitems As New Regex(arrayitem(0) & "|" & arrayitem(1) & "|"  & arrayitem(2))

If arrayitems.IsMatch(largestring) Then 
  'Exists
  '...
End If

別の代替手段は、(理論的には)Contains よりわずかに高速な IndexOf を使用することです。

Dim str As String = "Hello World."

' Does the string contain "World"?
If (str.IndexOf("World") <> -1) Then
  Console.Write("string contains 'World'")
Else
  Console.Write("string does not contain 'World'")
End If
于 2012-06-28T00:29:47.330 に答える
1

Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("whatever"))

于 2012-06-27T20:25:38.460 に答える