可以添加一个 String.contains 多个值吗?

Is possible to add a String.contains more than one value?

我想在创建 companyId 时进行控制,以不允许创建带有特殊字符的 ID,例如 (&)、(/)、()、(ñ)、('):

 If txtIdCompany.Text.Contains("&") Then
   // alert error message
 End If 

但是我做不到:

If txtIdCompany.Text.Contains("&", "/", "\") Then
       // alert error message
     End If 

如何检查同一行中的多个字符串?

您可以使用 Char()Enumerable.Contains 等集合。由于 String 实现了 IEnumerable(Of Char),甚至这个简洁高效的 LINQ 查询也能工作:

Dim disallowed = "&/\"
If disallowed.Intersect(txtIdCompany.Text).Any() Then
    ' alert error message
End If

这里有一个类似的方法,使用 Enumerable.Contains:

If txtIdCompany.Text.Any(AddressOf disallowed.Contains) Then
    ' alert error message
End If

第三个选项使用String.IndexOfAny

If txtIdCompany.Text.IndexOfAny(disallowed.ToCharArray()) >= 0 Then
    ' alert error message
End If
If txtIdCompany.Text.Contains("&") Or txtIdCompany.Text.Contains("\") Or txtIdCompany.Text.Contains("/") Then

   // alert error message

 End If