String.CompareToメソッドとString.Equalsメソッドは文字列の比較を行うメソッドで、指定された文字列と比較した結果を返します。
CompareToメソッドの戻り値は、二つの文字列を並べ替えた時の順番に従い、次のようになります。 比較の際、null/Nothingは空文字を含むどのような文字列よりも小さいと判断され、null/Nothing同士は等価として扱われます。
| 文字列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