ホームページ > バックエンド開発 > C++ > 大文字と小文字を区別せずに C# で文字列を効率的に比較するにはどうすればよいですか?

大文字と小文字を区別せずに C# で文字列を効率的に比較するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-05 17:09:40
オリジナル
176 人が閲覧しました

How to Efficiently Compare Strings in C# with Case Insensitivity?

C# での大文字と小文字を区別しない文字列比較

C# で 2 つの文字列を比較する場合、大文字と小文字を区別しない処理は一般的な要件です。いくつかのオプションが利用可能ですが、それぞれに独自のパフォーマンスに関する考慮事項があります。 2 つの一般的なメソッドを検討し、より効率的な代替メソッドを提供してみましょう。

メソッド 1: String.Equals with StringComparison.InvariantCultureIgnoreCase

このメソッドは簡単ですが、速度が遅くなる可能性があります。 InvariantCultureIgnoreCase 基準を使用して文字列を比較します。これにより、大文字と小文字は区別されませんが、文化的な考慮事項のオーバーヘッドが生じます。

string val = "AStringValue";

if (val.Equals("astringvalue", StringComparison.InvariantCultureIgnoreCase))
ログイン後にコピー

方法 2: String.ToLowerCase with ==

この方法は文化的処理を排除することで高速に見えますが、欠点もあります。文字列を小文字に変換すると、新しい文字列インスタンスが作成され、追加のメモリが消費され、大きな文字列を扱うときにパフォーマンスに影響を与える可能性があります。

if (val.ToLowerCase() == "astringvalue")
ログイン後にコピー

より効率的な代替案: String.Equals with StringComparison.OrdinalIgnoreCase

最適な解決策は、 StringComparison.OrdinalIgnoreCase フラグ:

string.Equals(val, "astringvalue", StringComparison.OrdinalIgnoreCase)
ログイン後にコピー

順序比較は文化的な考慮事項をバイパスし、大幅に高速化されます。ただし、両方の文字列が同じ文字エンコーディングを使用していることを前提としており、そうでない場合は予期しない結果が生じる可能性があります。

同じ文字列を他の文字列と頻繁に比較する場合は、事前に小文字に変換すると効率が向上します。ただし、具体的なメリットを確実にするために、最適化を行う前にコードを測定、テストすることを忘れないでください。

以上が大文字と小文字を区別せずに C# で文字列を効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート