ホームページ >バックエンド開発 >C++ >.NETで文字列の発生をカウントする最速の方法は何ですか?

.NETで文字列の発生をカウントする最速の方法は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-31 06:41:07302ブラウズ

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

文字列countをカウントする最良の方法特定の文字列で特定の文字またはサブストリングですべての回数を見つけます。この記事では、特に統計文字列のスラッシュ(/)の場合、最も効果的で便利な方法に焦点を当てています。 まず、キャラクターの交換を使用することを検討できます。

または、複数のキャラクターの長さのサブストリングの場合、次のことを使用できます。

しかし、.NET 3.5ユーザーの場合、より簡潔で効率的な解決策がLINQを使用することでした:

<code class="language-csharp">string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;</code>

または、選択できます:

<code class="language-csharp">string haystack = "/once/upon/a/time/";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;</code>

驚くべきことに、初期文字除去方法は、LINQまたはスプリットメソッドよりも約30%高速です。文字列のベンチマークテスト「/and/on/a/time/」は、次のクロノグラフの結果を生成します。

<code class="language-csharp">int count = source.Count(f => f == '/');</code>
文字置換方法:12秒

source.count:19秒
<code class="language-csharp">int count = source.Split('/').Length - 1;</code>

source.split:17秒

    foreachループ(他の回答から):10秒
  • これらの時間の違いは実際のアプリケーションでは明らかではないかもしれませんが、元の文字置換方法は、この状況で依然として最速です。

以上が.NETで文字列の発生をカウントする最速の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。