VB.net最快的方法来检查一个字符串是否包含许多字符串中的一个

时间:2012-06-27 20:20:01

标签: vb.net string

好的,所以我想检查一个大字符串是否包含一个数组中的许多其他字符串中的一个(任何)。

我可以遍历该数组并执行'if largestring.contains(arrayitem)做某事然后退出'但我觉得这可能是低效的,特别是如果字符串数组非常大。

另外,性能会根据找到的字符串数组中的位置而有所不同 有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

最佳方法我认为是使用正则表达式

Imports System.Text.RegularExpressions

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

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

另一种选择是使用IndexOf(理论上)比Contains

略快
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

答案 1 :(得分:1)

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