检查字符是否是String的一部分

时间:2015-03-26 13:12:41

标签: c# .net vb.net string linq

我想检查一组字符是否是String变量的一部分不是, 理想情况下,我会做以下其中一个,

  1. 将字符存储在列表中并遍历每个字符以检查它们是否存在于字符串中。
  2. 如果字符集很小,请使用OR运算形成一个简单的if语句。
  3. 有没有更好的方法可以使用LINQ。

    作为一个例子,我想检查是否有任何字符'>'或'<'或'=',是字符串'a>的一部分。 b和b!= 10'。

3 个答案:

答案 0 :(得分:9)

您可以使用Intersect + Any

bool contains = stringVariable.Intersect("><=").Any();

答案 1 :(得分:2)

不应该太困难:

var content = "a<b";

var isContained = content.Any(c => c == '<')

..或者是一个字符列表:

var charList = new []{'<', '>'};
var isAnyContained = content.Any(c => charList.Contains(c));

答案 2 :(得分:1)

您可以使用String.IndexOfAny方法:

string myString = "a > b and b != 10";
if (myString.IndexOfAny(new char[] { '<', '>', '=' }) >= 0)
    {
    // ...
    }

或者

Dim myString As String = "a > b and b != 10"
If myString.IndexOfAny({">"c, ">"c, "="c}) >= 0 Then
    ' ...
End If