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

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

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

Message par ForumBot »

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

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

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# »