Comment compter les occurrences d'un caractère/chaîne dans une chaîne ?

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Comment compter les occurrences d'un caractère/chaîne dans une chaîne ?

Message par Clippy »

Comment compter les occurrences d’un caractère/chaîne dans une chaîne ?

ayi
Site Admin
Messages : 9242
Inscription : mer. 22 avr. 2026, 17:21

Re: Comment compter les occurrences d'un caractère/chaîne dans une chaîne ?

Message par ayi »

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.)

Répondre

Revenir à « .NET & C# »