0

我需要检查数组中的字符串模式是否包含在字符串中。我正在使用以下代码,但它匹配数组中包含的确切字符串而不是模式,因此以下代码将失败。我怎样才能做到这一点?

String[] stringArrayToBlock = { "#", "/", "string1:", "string2" };
String SearchString = "String1:sdfsfsdf";

 if (stringArrayToBlock.Contains(SearchString.Trim().ToLower()))
 { 
   //Do work
 }
4

2 回答 2

3

我想你应该反之亦然。此外,如果您对 LINQ 持开放态度,则Enumerable.Any 方法非常方便:

string[] stringArrayToBlock = { "#", "/", "string1:", "string2" };
string SearchString = "String1:sdfsfsdf";
string lowerCaseString = SearchString.Trim().ToLower();
if (stringArrayToBlock.Any(s => lowerCaseString.Contains(s)))    
{
    //Do work
}
于 2012-12-03T07:17:12.033 回答
3

使用 LINQAny()方法确定数组的任何元素是否满足条件。这里使用的Contains方法是 of string,而不是 of Array

String[] stringArrayToBlock = { "#", "/", "string1:", "string2" };
String SearchString = "String1:sdfsfsdf";

 if (stringArrayToBlock.Any(s => SearchString.Trim().ToLower().Contains(s)))
 { 
     //Do work
 }
于 2012-12-03T07:17:19.663 回答