Comment compter les occurrences d’un caractère/chaîne dans une chaîne ?
Si vous utilisez .NET 3.5, vous pouvez le faire en une seule ligne avec LINQ :
int count = source.Count(f => f == '/');
Si vous ne voulez pas utiliser LINQ, vous pouvez le faire avec :
int count = source.Split('/').Length - 1;
Vous pourriez être surpris d’apprendre que votre technique originale semble être environ 30 % plus rapide que l’une ou l’autre de ces méthodes ! J’ai fait un rapide benchmark avec “/once/upon/a/time/” et les résultats sont les suivants :
Votre original = 12s
source.Count = 19s
source.Split = 17s
foreach (de la réponse de bobwienholt) = 10s
(Les temps sont pour 50 000 000 itérations, donc vous ne remarquerez probablement pas beaucoup de différence dans le monde réel.)