Vérifier si une chaîne de la liste contient une chaîne spécifique avec Linq

J’ai une List qui contient des éléments comme celui-ci:

 {"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"} 

Maintenant, je veux effectuer une condition qui vérifie si un élément de la liste contient une chaîne spécifique. quelque chose comme:

IF list contains an item that contains this_ssortingng

Pour faire simple, je veux vérifier en une fois si la liste au moins! contient par exemple un élément Mdd LH .

Je veux dire quelque chose comme:

 if(myList.Contains(str => str.Contains("Mdd LH)) { //Do stuff } 

Merci.

Je pense que tu veux

 if (myList.Any(str => str.Contains("Mdd LH"))) 

Il vaut la peine de se familiariser avec les opérateurs de requête standard LINQ ; J’utiliserais généralement ces méthodes plutôt que des méthodes spécifiques à une implémentation (telles que List.ConvertAll ), sauf si la performance d’un opérateur spécifique me dérangeait vraiment. (Les méthodes spécifiques à une implémentation peuvent parfois être plus efficaces si vous connaissez la taille du résultat, etc.)

Cela devrait être assez facile

 if( myList.Any( s => s.Contains(ssortingngToCheck))){ //do your stuff here } 

LINQ Any () ferait le travail:

 bool contains = myList.Any(s => s.Contains(pattern)); 

Any (), MSDN :

Détermine si un élément d’une séquence vérifie une condition

Essaye ça:

 bool matchFound = myList.Any(s => s.Contains("Mdd LH")); 

Any() arrêtera de chercher le moment où il trouvera une correspondance, est donc assez efficace pour cette tâche.

Si vous utilisez contient, vous pourriez obtenir des faux positifs. Supposons que vous ayez une chaîne contenant le texte suivant: “Mes données de texte Mdd LH” Si vous utilisez la méthode Contains, cette méthode renverra true pour l’appel. L’approche est l’utilisation est égale à l’opérateur:

bool exists = mySsortingngList.Any(c=>c == "Mdd LH")