Maison >développement back-end >C++ >Quel est le moyen le plus rapide de compter les occurrences de chaîne dans .NET?

Quel est le moyen le plus rapide de compter les occurrences de chaîne dans .NET?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-31 06:41:07302parcourir

What's the Fastest Way to Count String Occurrences in .NET?

La meilleure façon de compter le nombre de chaînes

Trouvez tout le nombre de fois dans le caractère spécifique ou la sous-position dans une chaîne donnée dans un .NET. Cet article se concentre sur la méthode la plus efficace et la plus pratique, en particulier lorsque la barre oblique (/) dans la chaîne statistique.

Tout d'abord, vous pouvez envisager d'utiliser le remplacement des caractères, par exemple:

ou, pour une sous-string d'une longueur de plus d'un caractère, vous pouvez utiliser:
<code class="language-csharp">string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;</code>

Mais pour les utilisateurs .NET 3.5, la solution plus concise et efficace était d'utiliser LINQ:
<code class="language-csharp">string haystack = "/once/upon/a/time/";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;</code>

ou, vous pouvez choisir:
<code class="language-csharp">int count = source.Count(f => f == '/');</code>

Étonnamment, la méthode initiale de suppression des caractères est environ 30% plus rapide que la méthode LINQ ou Split. Le test de référence de la chaîne "/ une fois / on / a / time /" génère les résultats du chronographe suivant:
<code class="language-csharp">int count = source.Split('/').Length - 1;</code>

Méthode de remplacement des caractères: 12 secondes
  • source.Count: 19 secondes
  • source.split: 17 secondes
  • Foreach Loop (à partir d'autres réponses): 10 secondes
  • Bien que ces différences de temps puissent ne pas être évidentes dans les applications pratiques, la méthode de remplacement des caractères d'origine est toujours la plus rapide pour cette situation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn