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

C# で大文字と小文字を区別しない文字列比較を正しく実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-19 12:46:09
オリジナル
149 人が閲覧しました

How to Perform Case-Insensitive String Comparisons Correctly in C#?

C# における大文字と小文字を区別しない文字列比較

C# で文字列比較を行う場合は、通常、大文字と小文字を区別する必要があります。最初は StringComparison.OrdinalIgnoreCase メソッドを Equals とともに使用することを検討するかもしれませんが、これにより予期しない結果が生じる可能性があります。

次のコード例:

<code class="language-csharp">drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], 
                                 StringComparison.OrdinalIgnoreCase)));</code>
ログイン後にコピー

問題は、式ラムダで Equals メソッドを使用することです。式 lambda はブール式を予期しますが、Equals メソッドは void を返します。

.NET Framework 4 以降では、以下に示すように、大文字と小文字を区別しない文字列比較のために String.Compare メソッドを StringComparison.OrdinalIgnoreCase と組み合わせて使用​​することをお勧めします。

<code class="language-csharp">String.Compare(x.Username, (string)drUser["Username"], 
                  StringComparison.OrdinalIgnoreCase) == 0</code>
ログイン後にコピー
また、コードを読みやすくし、エラーを少なくするために、次のように

メソッドを使用することもできます。 String.Equals

<code class="language-csharp">String.Equals(x.Username, (string)drUser["Username"], 
                   StringComparison.OrdinalIgnoreCase) </code>
ログイン後にコピー
これらのメソッドでは、文字列比較が大文字と小文字を区別しない方法で実行され、正確な結果が得られます。

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

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