C# の大文字と小文字を区別しない文字列比較: 課題と完全な解決策
大文字と小文字を区別する環境で文字列比較を実行する場合、入力文字列の大文字と小文字に関係なく、正確な結果を得ることが重要です。この記事は、大文字と小文字を区別しない文字列比較を効率的に処理するための包括的なソリューションを提供することを目的としています。
質問に示されているコード スニペットは、大文字と小文字が区別される等価性をチェックすることにより、登録ユーザーのリストにユーザー名が存在するかどうかを判断しようとします。ただし、x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)
を使用して提案された修正では、望ましい結果が返されませんでした。
問題の根本は、String.Equals
フラグと StringComparison.OrdinalIgnoreCase
フラグの不適切な使用です。代わりに、文字列の等価性チェックに String.Compare
または String.CompareTo
メソッドを使用してください。 Microsoft の推奨に従って、String.Equals
は値の同等性をテストするために予約する必要がありますが、String.Compare
と String.CompareTo
は並べ替えの目的で使用されます。
大文字と小文字を区別しない等価比較を実装するには、次のコード スニペットを使用できます:
<code class="language-csharp">String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)</code>
このメソッドは、大文字と小文字を無視して文字列比較が実行されることを保証し、ユーザー入力の大文字と小文字が異なる場合でも正確な結果を保証します。
この推奨プラクティスを採用することで、開発者は大文字と小文字を区別する文字列比較に関連する落とし穴を排除できます。これにより、コードの堅牢性が向上するだけでなく、入力の大文字と小文字の変更に適応することでユーザー エクスペリエンスも向上します。
以上がC# で大文字と小文字を区別しない正確な文字列比較を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。