C#、VB.NETでは等価演算子・不等価演算子を用いることで文字列同士の比較が行えます。 等価演算子の動作はEqualsメソッドと同等です。 つまりC#、VB.NETでのstring同士の等価演算子の結果は、String.Equals(a, b)と同じ動作となります。 不等価演算子は、その結果を否定(反転)したものとなります。
等価演算子・不等価演算子を使って文字列同士を比較する
Imports System
Class Sample
Shared Sub Main()
Dim s1 As String = "foo"
Dim s2 As String = "bar"
Dim s3 As String = "foo"
Console.WriteLine("{0} = {1}: {2}", s1, s2, s1 = s2)
Console.WriteLine("{0} <> {1}: {2}", s1, s2, s1 <> s2)
Console.WriteLine("{0} = {1}: {2}", s1, s3, s1 = s3)
Console.WriteLine("{0} <> {1}: {2}", s1, s3, s1 <> s3)
End Sub
End Class
実行結果
foo == bar: False foo != bar: True foo == foo: True foo != foo: False
当然ながら、等価演算子・不等価演算子による比較の場合は、カルチャを無視したり大文字小文字を無視したりといった文字列比較時のオプション(StringComparison)を指定することはできません。 文字列比較時のオプションを指定する必要がある場合はEqualsメソッドを用います。
文字列の比較ではなく、文字列変数の参照の比較を行いたい場合、つまり2つの文字列変数が同一の文字列インスタンスを参照しているかどうかを調べるには、Object.ReferenceEqualsメソッドを使うことができます。 これについて詳しくは文字列とStringクラス §.参照と等価演算子で解説しています。