総帥中先生の記事で「SqlStringを使って文字列比較をすることの意味 」があります。http://blogs.wankuma.com/naka/archive/2007/02/06/61079.aspx
ありがとうごさいました。
こういう型が存在することすら忘却のかなたでした。
改めて稼動確認しましたら結構使えるじゃありませんか。早速下のようなテストしてみると,いずれも Trueが戻ります。
いままで,strconv, string.compare(,ignore)などを使って実装してたので,スッキリスッキリ。コスト比較はまだしてませんが,お気に入りになりました。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
比較("あ", "ア")
比較("あ", "ア")
比較("が", "ガ")
比較("が", "ガ")
End Sub
Public Sub 比較(ByVal x1 As String, ByVal x2 As String)
Dim y1 As SqlString = New SqlString(x1)
Dim y2 As SqlString = New SqlString(x2)
Dim bool As SqlBoolean = (y1 = y2)
MessageBox.Show(String.Format("({0} == {1}) => {2}", y1, y2, bool))
End Sub
指定は以下が可能です。(MSDN引用)
BinarySort 文字のアルファベット値ではなく、文字の数値に基づいて並べ替えるように指定します。
BinarySort2 バイナリでの並べ替えを実行します。
IgnoreCase SqlString の比較で、大文字と小文字を区別しないように指定します。
IgnoreKanaType SqlString の比較で、カナ型を無視するように指定します。カナ型とは、日本語の発音を表すひらがなとカタカナの文字を指します。ひらがなは、本来の日本語の表現と単語に使用し、カタカナは "コンピュータ" または "インターネット" などの外来語に使用します。発音は、ひらがなとカタカナのどちらでも表現できます。この値が選択されている場合、ある発音を示すひらがなは、同じ発音を示すカタカナと同一であると見なされます。
IgnoreNonSpace SqlString の比較で、発音区別符など、空白以外の組み合わせ文字を無視するように指定します。Unicode 標準は、基本文字を組み合わせて生成される新しい文字を組み合わせ文字として定義しています。空白以外の組み合わせ文字は、表示するときに文字と文字の間に空白が入りません。空白以外の組み合わせ文字の詳細については、http://www.unicode.org の「The Unicode Standard」を参照してください。
IgnoreWidth SqlString の比較で、半角と全角の区別を無視するように指定します。たとえば、日本語のカタカナ文字は、全角または半角で記述できます。この値を選択した場合、全角で記述されたカタカナ文字は、半角で記述されたカタカナ文字と同一であると見なされます。
None SqlString の比較で、既定のオプション設定を指定します。
ふと思ったのですが,これをカスタムソートに適用して,"いろは"順ソートができないかな?
(使い道がない!!..という突っ込みは却下)