Heim >Backend-Entwicklung >C++ >Was ist der schnellste Weg, um String -Ereignisse in .NET zu zählen?

Was ist der schnellste Weg, um String -Ereignisse in .NET zu zählen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-31 06:41:07352Durchsuche

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

Der beste Weg, um die Zeichenfolge zu zählen

Finden Sie die Anzahl der Male im spezifischen Zeichen oder in einer bestimmten Zeichenfolge in einem .NET. Dieser Artikel konzentriert sich auf die effektivste und bequemste Methode, insbesondere wenn der Schrägstrich (/) in der statistischen Zeichenfolge.

Zunächst können Sie in Betracht ziehen, den Zeichenersatz zu verwenden, zum Beispiel:

oder für einen Unter -String mit einer Länge von mehr als einem Zeichen können Sie:
<code class="language-csharp">string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;</code>
verwenden

Aber für die .NET 3.5 -Benutzer war die prägnantere und effizientere Lösung LINQ:
<code class="language-csharp">string haystack = "/once/upon/a/time/";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;</code>

oder Sie können wählen:
<code class="language-csharp">int count = source.Count(f => f == '/');</code>

überraschenderweise ist die anfängliche Charakterentfernungsmethode etwa 30%schneller als die LINQ- oder Split -Methode. Der Benchmark -Test der Zeichenfolge "/einmal/auf/a/time/" generiert die folgenden Chronographenergebnisse:
<code class="language-csharp">int count = source.Split('/').Length - 1;</code>

Zeichenersatzmethode: 12 Sekunden
  • Source.Count: 19 Sekunden
  • Source.split: 17 Sekunden
  • foreach Loop (aus anderen Antworten): 10 Sekunden
  • Obwohl diese zeitlichen Unterschiede in praktischen Anwendungen möglicherweise nicht offensichtlich sind, ist die ursprüngliche Charakterersatzmethode für diese Situation immer noch die schnellste.

Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, um String -Ereignisse in .NET zu zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn