如何匹配数组中包含的字符串中的字符串模式

时间:2012-12-03 07:13:49

标签: c# .net

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

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

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

2 个答案:

答案 0 :(得分:3)

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

string[] stringArrayToBlock = { "#", "/", "string1:", "string2" };
string SearchString = "String1:sdfsfsdf";
string lowerCaseString = SearchString.Trim().ToLower();
if (stringArrayToBlock.Any(s => lowerCaseString.Contains(s)))    
{
    //Do work
}

答案 1 :(得分:3)

使用LINQ Any()方法确定数组中的任何元素是否满足条件。 此处使用的Contains方法是string,而不是Array

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

 if (stringArrayToBlock.Any(s => SearchString.Trim().ToLower().Contains(s)))
 { 
     //Do work
 }