StringComparisonを指定した場合と同じ比較処理をCompareOptionsでも行うことが出来ます。 以下の表は、StringComparisonの値と、対応するCompareOptionsとCultureInfoの値の組み合わせです。

StringComparisonと等価なCompareOptionsとCultureInfoの組み合わせ
StringComparisonの値 対応するCompareOptionsとCultureInfoの組み合わせ
CompareOptions CultureInfo
StringComparison.Ordinal CompareOptions.Ordinal (任意のCultureInfo)
StringComparison.OrdinalIgnoreCase CompareOptions.OrdinalIgnoreCase (任意のCultureInfo)
StringComparison.CurrentCulture CompareOptions.None CultureInfo.CurrentCulture
(またはThread.CurrentThread.CurrentCulture)
StringComparison.CurrentCultureIgnoreCase CompareOptions.IgnoreCase CultureInfo.CurrentCulture
(またはThread.CurrentThread.CurrentCulture)
StringComparison.InvariantCulture CompareOptions.None CultureInfo.InvariantCulture
StringComparison.InvariantCultureIgnoreCase CompareOptions.IgnoreCase CultureInfo.InvariantCulture

次の例は、同じ比較処理をStringComparisonで指定した場合とCompareOptionsで指定した場合の例です。 記述は異なりますが、結果は同じです。

StringComparisonと同等となるCompareOptionsの値
Imports System
Imports System.Globalization
Imports System.Threading

Class Sample
  Shared Sub Main()
    Dim p1 As String() = New String() {"coop", "co-op"}
    Dim p2 As String() = New String() {"亜", "井"}
    Dim c As CultureInfo = Thread.CurrentThread.CurrentCulture

    Console.WriteLine(c)

    Console.WriteLine("{0} {1}", p1(0), p1(1))
    Console.WriteLine("Compare StringComparison.Ordinal          : {0}", String.Compare(p1(0), p1(1), StringComparison.Ordinal))
    Console.WriteLine("Compare StringComparison.CurrentCulture   : {0}", String.Compare(p1(0), p1(1), StringComparison.CurrentCulture))
    Console.WriteLine("Compare StringComparison.InvariantCulture : {0}", String.Compare(p1(0), p1(1), StringComparison.InvariantCulture))
    Console.WriteLine("Compare CompareOptions.Ordinal            : {0}", String.Compare(p1(0), p1(1), c, CompareOptions.Ordinal))
    Console.WriteLine("Compare CompareOptions.None               : {0}", String.Compare(p1(0), p1(1), c, CompareOptions.None))
    Console.WriteLine("Compare CompareOptions.None (Invariant)   : {0}", String.Compare(p1(0), p1(1), CultureInfo.InvariantCulture, CompareOptions.None))

    Console.WriteLine("{0} {1}", p2(0), p2(1))
    Console.WriteLine("Compare StringComparison.Ordinal          : {0}", String.Compare(p2(0), p2(1), StringComparison.Ordinal))
    Console.WriteLine("Compare StringComparison.CurrentCulture   : {0}", String.Compare(p2(0), p2(1), StringComparison.CurrentCulture))
    Console.WriteLine("Compare StringComparison.InvariantCulture : {0}", String.Compare(p2(0), p2(1), StringComparison.InvariantCulture))
    Console.WriteLine("Compare CompareOptions.Ordinal            : {0}", String.Compare(p2(0), p2(1), c, CompareOptions.Ordinal))
    Console.WriteLine("Compare CompareOptions.None               : {0}", String.Compare(p2(0), p2(1), c, CompareOptions.None))
    Console.WriteLine("Compare CompareOptions.None (Invariant)   : {0}", String.Compare(p2(0), p2(1), CultureInfo.InvariantCulture, CompareOptions.None))
  End Sub
End Class
実行結果
ja-JP
coop co-op
Compare StringComparison.Ordinal          : 66
Compare StringComparison.CurrentCulture   : -1
Compare StringComparison.InvariantCulture : -1
Compare CompareOptions.Ordinal            : 66
Compare CompareOptions.None               : -1
Compare CompareOptions.None (Invariant)   : -1
亜 井
Compare StringComparison.Ordinal          : 7
Compare StringComparison.CurrentCulture   : -1
Compare StringComparison.InvariantCulture : 1
Compare CompareOptions.Ordinal            : 7
Compare CompareOptions.None               : -1
Compare CompareOptions.None (Invariant)   : 1

それぞれの結果の違いに関しては、§.CurrentCultureとInvariantCultureの違いおよび§.CurrentCultureとOrdinalの違いもあわせて参照してください。