2016-07-25 16 views
1

Grundsätzlich ich mehr als einen Strang erkennen wollen, aktuelle Codebeispiel istC# Multiple String Enthält

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

Wie würde ich "example1", "example2" & "example3"

+1

So wie Sie normalerweise für mehrere Bedingungen testen würden - verbinden Sie sie zusammen mit '&&' oder '||'. Zum Beispiel: 'if (! Str3.Contains (" example1 ") &&! Str3.Contains (" example2 ") ...)' –

+0

Finden Sie alle oder einen? –

+0

Und wenn Sie viele davon haben, können Sie eine IEnumerable 'wie eine' List 'erstellen und durchschleifen, indem Sie die entsprechende Logik verwenden, um aus Ihrer äußeren Schleife auszubrechen. –

Antwort

5

Sie hinzufügen können, verwenden Linq, wenn Sie mit einer großen Liste testen wollen:

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

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

persönlich bevorzuge ich die Art und Weise des Looping, weil sie das Problem manuell erweitert Code löst. Zum Beispiel ...

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 
} 

Grundsätzlich erstellen Sie eine Sammlung von Elementen, nach denen Sie suchen möchten. Mit diesem durchlaufen Sie sie und vergleichen sie mit der Zielzeichenfolge.

Ich weiß nicht den vollen Umfang der Funktion, so dass ich nicht genau mehr hinzufügen kann, aber das ist schon ziemlich einfach.

0

Wenn die Zeichenfolgen einem bestimmten Muster folgen, ist Regex immer eine saubere Option.

Wenn die Saiten "example1", "example2" usw., können Sie diese Regex verwenden:

/example[0-9]+/g 

Einige C#, um die ersten und zweiten Spiel (Quelle: http://www.dotnetperls.com/regex): finden

// 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 
}