String.CompareToメソッドString.Equalsメソッドは文字列の比較を行うメソッドで、指定された文字列と比較した結果を返します。

CompareToメソッドの戻り値は、二つの文字列を並べ替えた時の順番に従い、次のようになります。 比較の際、null/Nothingは空文字を含むどのような文字列よりも小さいと判断され、null/Nothing同士は等価として扱われます。

String.CompareToの戻り値
文字列aとbの関係 a.CompareTo(b)の戻り値
並べ替えたときにaの方がbよりも前
(aはbよりも小さい)
0より小さい値 "ABC" < "ABD"
null < "ABC"
並べ替えたときにaとbは同じ位置
(aとbは等しい)
0 "ABC" = "ABC"
null = null
並べ替えたときにaの方がbよりも後
(aはbよりも大きい)
0より大きい値 "ABC" > "ABB"
"ABC" > null

Equalsメソッドは、二つの文字列が等しい場合(CompareToメソッドが0を返す場合)にTrueを返します。

String.CompareTo・Equalsメソッドで別の文字列との大小関係・等価関係の比較を行う
Imports System

Class Sample
  Shared Sub Main()
    Dim s1 As String = "foo"
    Dim s2 As String = "bar"
    Dim s3 As String = "baz"

    Console.WriteLine("{0} CompareTo {1} : {2}", s1, s2, s1.CompareTo(s2))
    Console.WriteLine("{0} CompareTo {1} : {2}", s1, s3, s1.CompareTo(s3))
    Console.WriteLine("{0} CompareTo {1} : {2}", s2, s3, s2.CompareTo(s3))
    Console.WriteLine("{0} CompareTo {1} : {2}", s2, s2, s2.CompareTo(s2))

    Console.WriteLine("{0} Equals {1} : {2}", s1, s2, s1.Equals(s2))
    Console.WriteLine("{0} Equals {1} : {2}", s1, s3, s1.Equals(s3))
    Console.WriteLine("{0} Equals {1} : {2}", s2, s3, s2.Equals(s3))
    Console.WriteLine("{0} Equals {1} : {2}", s2, s2, s2.Equals(s2))
  End Sub
End Class
実行結果
foo CompareTo bar : 1
foo CompareTo baz : 1
bar CompareTo baz : -1
bar CompareTo bar : 0
foo Equals bar : False
foo Equals baz : False
bar Equals baz : False
bar Equals bar : True

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。