.NET

C#の文字列の比較判定について注意すべきこと

記事内に商品プロモーションを含む場合があります

文字列の比較はどの言語でもよく使用されますが、言語によって比較の方法は違います。

また、比較の方法が複数パターンあり、パフォーマンスなども気になるところです。

Javaの場合

例えば Java の場合、String の文字列比較は equals() や compareTo() メソッドを使います。

個人的には戻り値が boolean の equals() の方が好みですが・・・。

インスタンスの場合は == で比較ができますが、基本は equals() や compareTo() メソッドを使うべきでしょう。

PHPの場合

PHP の場合は、== で比較をしているソースをよく見かけますが、これは一般的にはタブーで、strcmp() 関数か === の型を考慮した判定が理想です。

そもそも型の概念が表面上はないスクリプト言語なので、そこを意識しておかないと厄介です。

C#の場合

C# も Java と同じく Equals() や CompareTo() メソッドで判定するのが一般的かと思っていたのですが、思わぬ落とし穴があることが判明しました。

結果的には、C# の文字列比較は == を使うべきということです。

詳しくは下記のサイトで確認して下さい。