(このドキュメントは未整理です)

StringSortは、ハイフン・アポストロフィが英数字や他の記号よりも前になるように比較するように指定します。 これらの値や他の値と組み合わせて使用することも出来ます。 CompareOptions.StringSortの解説では、

文字列の比較時に、文字列での並べ替えアルゴリズムを使用することを示します。文字列での並べ替えでは、ハイフン、アポストロフィ、およびその他の英数字以外の記号が英数字よりも前に来ます。

CompareOptions 列挙体

とされているものの、具体的にハイフン・アポストロフィ以外のどの記号が無視される対象なのかは明記されていないようです。 また、.NET FrameworkとMonoでも実行結果は異なるようです。

CompareOptions.StringSortを指定してハイフン・アポストロフィが英数字よりも前となるように比較する
Imports System
Imports System.Globalization
Imports System.Threading

Class Sample
  Shared Sub Main()
    Console.WriteLine(Thread.CurrentThread.CurrentCulture)

    Compare("cant", "can't", CompareOptions.None)
    Compare("cant", "can't", CompareOptions.StringSort)
    Compare("cant", "can't", CompareOptions.Ordinal)

    Console.WriteLine()

    Compare("coop", "co-op", CompareOptions.None)
    Compare("coop", "co-op", CompareOptions.StringSort)
    Compare("coop", "co-op", CompareOptions.Ordinal)

    Console.WriteLine()

    Compare("あい", "あ-い", CompareOptions.None)
    Compare("あい", "あ-い", CompareOptions.StringSort)
    Compare("あい", "あ-い", CompareOptions.Ordinal)

    Console.WriteLine()

    Compare("coop", "co#op", CompareOptions.None)
    Compare("coop", "co#op", CompareOptions.StringSort)
    Compare("coop", "co@op", CompareOptions.None)
    Compare("coop", "co@op", CompareOptions.StringSort)
    Compare("co-op", "co#op", CompareOptions.None)
    Compare("co-op", "co#op", CompareOptions.StringSort)
    Compare("co-op", "co@op", CompareOptions.None)
    Compare("co-op", "co@op", CompareOptions.StringSort)
  End Sub

  Private Shared Sub Compare(ByVal s1 As String, ByVal s2 As String, ByVal options As CompareOptions)
    Console.WriteLine("{0} {1} : {2,2} ({3:f})", s1, s2, String.Compare(s1, s2, Thread.CurrentThread.CurrentCulture, options), options)
  End Sub
End Class
実行結果
ja-JP
cant can't : -1 (None)
cant can't :  1 (StringSort)
cant can't : 77 (Ordinal)

coop co-op : -1 (None)
coop co-op :  1 (StringSort)
coop co-op : 66 (Ordinal)

あい あ-い :  1 (None)
あい あ-い :  1 (StringSort)
あい あ-い : -52937 (Ordinal)

coop co#op :  1 (None)
coop co#op :  1 (StringSort)
coop co@op :  1 (None)
coop co@op :  1 (StringSort)
co-op co#op :  1 (None)
co-op co#op : -1 (StringSort)
co-op co@op :  1 (None)
co-op co@op : -1 (StringSort)
実行結果
ja-JP
cant can't : -1 (None)
cant can't :  0 (StringSort)
cant can't : 77 (Ordinal)

coop co-op : -1 (None)
coop co-op :  0 (StringSort)
coop co-op : 66 (Ordinal)

あい あ-い : -1 (None)
あい あ-い :  0 (StringSort)
あい あ-い : -52937 (Ordinal)

coop co#op :  1 (None)
coop co#op :  1 (StringSort)
coop co@op :  1 (None)
coop co@op :  1 (StringSort)
co-op co#op :  1 (None)
co-op co#op :  1 (StringSort)
co-op co@op :  1 (None)
co-op co@op :  1 (StringSort)