C#の文字列の比較判定について

C#の文字列の比較判定について

.NET C#C#の文字列の比較判定について

文字列の比較は、どの言語でもよく使用されますが、言語によって比較の方法は違います。また、比較の方法が複数パターンあり、パフォーマンスなども気になるところです。

例えば、Java の場合は String の文字列比較は equals() や compareTo() メソッドを使います。戻り値が boolean の equals() の方が好みですが。インスタンスの場合は == で比較ができますが、基本は equals() や compareTo() メソッドを使うべきでしょう。

PHP の場合は、== で比較をしているソースをよく見かけますが、これはタブーで、strcmp() 関数か === の型を考慮した判定が理想です。そもそも型の概念が表面上はないスクリプト言語なので、そこを意識しておかないと厄介です。

C# も Java と同じく Equals() や CompareTo() メソッドで判定するのが一般的かと思っていたのですが、思わぬ落とし穴があることが判明しました。結果的には、C# の文字列比較は == を使うべきということです。詳しくは下記のサイトで確認して下さい。

C# では文字列の比較に Equals を使うな
[C#] 文字列の比較は Equalsメソッドではなく ==演算子で行う

[Java]
String s1 = "1";
String s2 = "2";

if (s1.equals(s2)) {
    // 一致
}

[PHP]
$s1 = "1";
$s2 = "2";

if (strcmp($s1, $s2)) {
    // 一致
}

[C#]
string s1 = "1";
string s2 = "2";

if (s1 == s2) {
    // 一致
}

最終更新日:

関連記事

人気記事

新着情報