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メソッドで別の文字列との大小関係・等価関係の比較を行う
using System;

class Sample {
  static void Main()
  {
    var s1 = "foo";
    var s2 = "bar";
    var s3 = "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));
  }
}
実行結果
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