Requête Linq un tableau de chaînes en c# si contient l'une des deux valeurs?

J'ai un tableau de chaînes

string[] tmp = foo();

Si AUCUNE des chaînes de foo contenir "bar" ou "baz" je veux exécuter un code.
Est-ce la bonne façon d'interroger cet objet?

if(!tmp.Any(p => p.ToLower().Contains("bar") || p.ToLower().Contains("baz"))
 doSomething(); 

L' || semble idiot. Dois-je utiliser une expression régulière ici, ou est-il une meilleure façon de faire cela? ***Notez également les valeurs dans tmp sont comme "bar=someValue" comme une chaîne de requête. Ce code fonctionne bien, mais je suis certain qu'il peut mieux écrit. Merci pour les conseils de commentaires.

Pourquoi le || sembler idiot? Vous voulez faire quelque chose si X ou Y est vrai pour n'importe quel élément. Semble tout à fait raisonnable pour moi.
Pour moi, vous le code est parfaitement correct. Si il ya de nombreux éléments, je voudrais créer une extension de la méthode à simplifier la syntaxe. Pour jusqu'à 2/3 points que je voudrais aller avec cette approche.
Oui Jon || est ok maintenant, mais qu'en est quand j'ai besoin de regarder pour plus de valeurs à côté de la barre ou de baz? Je cherchais quelque chose qui évolue un peu mieux. J'ai comme l'intersection des approches, mais les valeurs dans tmp sont en nom=valeur de format. Merci!
consultez la mise à jour de réponse
Ce n'est pas exactement la réponse à votre question, mais il est effectivement plus rapide à utiliser p.IndexOf("bar", StringComparison.CurrentCultureIgnoreCase) < 0 et d'éviter la ToLower() appel.

OriginalL'auteur Hcabnettek | 2012-11-14