.NETでのコレーション


.NETまったく初心者の質問です．

Javaの世界にはコレーションをつかさどるクラスがあります．例えば

[code]

    java.text.Collator
    java.text.RuleBasedCollator
    
[/code]

有名どころのICU（International Components for Unicode）では

[code]

    com.ibm.icu4jni.text.Collator
    com.ibm.icu4jni.text.RuleBasedCollator    
    
[/code]

など．

でも.NETの場合（私が見てみる限り）コレーションを操作できるようなクラスが見つかりませんでした．

  * もし.NETで該当するようなクラスがあるようでしたら教えてください． 
  * ない場合、.NETではコレーションについてはどのように扱っているのでしょうか？教えてください．

以上 初歩的な質問ですがよろしくお願いいたします．




.NETにおいては、コレーションという狭い範囲でなく

  * 文字列の処理
  * 日付と時刻の処理
  * 数値の処理

を総合して[グローバリゼーション](https://msdn.microsoft.com/ja-
jp/library/c08a467e\(v=vs.110\).aspx)と呼び、[CultureInfoクラス](https://msdn.microsoft.com/ja-
jp/library/system.globalization.cultureinfo\(v=vs.110\).aspx)がこれを表現します。  
ですので、例えば文字列比較[`String.Compare`](https://msdn.microsoft.com/ja-
jp/library/system.string.compare\(v=vs.110\).aspx)であれば`CultureInfo`を引数にとるオーバーロードが用意されています。  
また、.NETではスレッドに対して`CultureInfo`を設定することができます（[`Thread.CurrentUICulture`](https://msdn.microsoft.com/ja-
jp/library/system.threading.thread.currentuiculture\(v=vs.110\).aspx)）。このため、`String.Compare`の他のオーバーロードなど明示的に`CultureInfo`を与えていない処理であっても暗黙的にこの値を使用するものもあります。例えば[`String.Compare(String,
String)`](https://msdn.microsoft.com/en-us/library/84787k22\(v=vs.110\).aspx)は

> The comparison uses **the current culture** to obtain culture-specific
> information such as casing rules and the alphabetic order of individual
> characters.

と説明されています。




.NETにおいては、コレーションという狭い範囲でなく

  * 文字列の処理
  * 日付と時刻の処理
  * 数値の処理

を総合して[グローバリゼーション](https://msdn.microsoft.com/ja-
jp/library/c08a467e\(v=vs.110\).aspx)と呼び、[CultureInfoクラス](https://msdn.microsoft.com/ja-
jp/library/system.globalization.cultureinfo\(v=vs.110\).aspx)がこれを表現します。  
ですので、例えば文字列比較[`String.Compare`](https://msdn.microsoft.com/ja-
jp/library/system.string.compare\(v=vs.110\).aspx)であれば`CultureInfo`を引数にとるオーバーロードが用意されています。  
また、.NETではスレッドに対して`CultureInfo`を設定することができます（[`Thread.CurrentUICulture`](https://msdn.microsoft.com/ja-
jp/library/system.threading.thread.currentuiculture\(v=vs.110\).aspx)）。このため、`String.Compare`の他のオーバーロードなど明示的に`CultureInfo`を与えていない処理であっても暗黙的にこの値を使用するものもあります。例えば[`String.Compare(String,
String)`](https://msdn.microsoft.com/en-us/library/84787k22\(v=vs.110\).aspx)は

> The comparison uses **the current culture** to obtain culture-specific
> information such as casing rules and the alphabetic order of individual
> characters.

と説明されています。

