2012-12-03 105 views
0

我需要檢查數組中的字符串模式是否包含在字符串中。 我正在使用下面的代碼,但它匹配數組中包含的確切字符串,而不是模式,所以以下將失敗。 我該怎麼做?如何匹配數組中包含的字符串中的字符串模式

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

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

是不是相反的條件? –

+0

'string pattern'你的意思是'12345',所以它應該找到所有有5個數字的字符串? – sajanyamaha

+0

它的工作原理是這樣的,因爲我需要檢查數組中的字符串是否與字符串匹配。但現在我正在考慮它,我猜這是相同的 – themis

回答

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 
} 
+0

是的,這工作很好很好 – themis

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 
} 
+0

我會引用Bryan Hong:_isn't條件反過來?_ – horgh

+0

我認爲問題是關於定位'字符串模式'而不是'確切的字符串' – sajanyamaha

+0

是的我提到我是尋找字符串模式,反正,謝謝 – themis

相關問題