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

.NET で大文字と小文字を区別しない文字列比較を効率的に実行するにはどうすればよいですか?

DDD
リリース: 2025-01-19 12:56:10
オリジナル
676 人が閲覧しました

How to Perform Case-Insensitive String Comparisons in .NET Efficiently?

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

大文字と小文字を区別しない文字列比較を実行することは、多くのプログラミング タスクにおいて重要です。この記事では、この問題に効率的に対処する方法について詳しく説明します。

目標は、次のコード行で大文字と小文字を区別しないようにすることです。

<code>drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);</code>
ログイン後にコピー

Equals メソッドと StringComparison.OrdinalIgnoreCase を使用すると、機能するようです:

<code>x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
ログイン後にコピー

ただし、FindIndex 式内でこのメソッドを使用しても、期待される結果は得られません。

主な問題は x.Username.Equals の使用です。このメソッドは内部的に大文字と小文字を区別しない比較を処理しますが、一致する要素のインデックスは返しません。

.NET の大文字と小文字を区別しない文字列比較のベスト プラクティス

.NET で大文字と小文字を区別しない文字列比較を正しく実行するには、String.Compare メソッドと StringComparison.OrdinalIgnoreCase を使用することをお勧めします。

<code>String.Compare(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) == 0</code>
ログイン後にコピー
または、

メソッドと String.Equals フラグを使用することもできます。 StringComparison.OrdinalIgnoreCase

<code>String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)</code>
ログイン後にコピー
MSDN では、文字列の等価性のテストと文字列の並べ替えにそれぞれ次の方法を推奨しています。

  • String.Equals: 等価性テスト用
  • String.CompareString.CompareTo: は並べ替えに使用されます

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

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