Je veux vérifier si une chaîne s, contient "a" ou "b" ou "c", en C #. Je recherche une meilleure solution que d'utiliser
if (s.contains("a")||s.contains("b")||s.contains("c"))
Je veux vérifier si une chaîne s, contient "a" ou "b" ou "c", en C #. Je recherche une meilleure solution que d'utiliser
if (s.contains("a")||s.contains("b")||s.contains("c"))
Eh bien, il y a toujours ceci:
public static bool ContainsAny(this string haystack, params string[] needles)
{
foreach (string needle in needles)
{
if (haystack.Contains(needle))
return true;
}
return false;
}
Usage:
bool anyLuck = s.ContainsAny("a", "b", "c");
Rien ne va cependant égaler les performances de votre chaîne de comparaisons ||
Si vous recherchez des caractères uniques, vous pouvez utiliser String.IndexOfAny()
.
Si vous voulez des chaînes arbitraires, je ne connais pas de méthode .NET pour y parvenir "directement", même si une expression régulière fonctionnerait.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.