2016-07-25 100 views
1

基本上我要检测一个以上的字符串,当前的代码示例是C#多个字符串包含

if (!str3.Contains("example1")) 
{ 
    continue; 
} 

我怎么会加上“例1”,“例题” &“示例3”

+1

与通常测试多个条件相同的方式 - 用'&&'或'||'将它们连接在一起。例如:'if(!str3.Contains(“example1”)&&!str3.Contains(“example2”)...)' –

+0

检测它们全部或任何一个? –

+0

如果你有很多它们,你可以创建一个'IEnumerable ',比如'List ',并用适当的逻辑循环遍历你的外部循环。 –

回答

5

您可以使用Linq如果你想与一个大名单,以测试:

var excludes = new[] { "example1", "example2", "example3" }; 

//your loop here 
{ 
    if (!excludes.Any(x => str3.Contains(x))) 
    { 
     continue; 
    } 
} 
0

就个人而言,我更喜欢循环,因为它解决了手动扩大你的代码问题的方式。例如...

public void MyMethod(string param) 
{ 
    var myList = new string[] 
    { 
     "example1", 
     "example2", 
     "example3" 
    }; 
    foreach (var item in myList) 
    { 
     if (!param.Contains(item)) continue; 
    } 
    //Do something here 
} 

基本上,你正在创建一个你想要搜索的物品的集合。使用它,你循环它们并将它们与目标字符串进行比较。

我不知道该函数的全部范围,所以我不能完全添加更多,但这已经很基本了。

0

如果字符串遵循特定的模式,正则表达式总是一个干净的选项。

如果字符串 “例1”, “例2” 等等,你可以使用这个表达式:

/example[0-9]+/g 

一些C#发现第一和第二场比赛(来源:http://www.dotnetperls.com/regex):

// Get first match. 
Match match = Regex.Match(str3, @"example[0-9]+"); 
if (match.Success) 
{ 
    //matched one of the strings 
} 

// Get second match. 
match = match.NextMatch(); 
if (match.Success) 
{ 
    //process second match 
}