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 サイトの他の関連記事を参照してください。