2011-08-11 4 views
0

私は現在のユーザーの言語設定に基づいて異なる言語の値を含むことができる汎用リストを持っています。たとえば、ユーザーが日本語を選択した場合、リストに日本語のテキストが入力されます。どのようにC#で特定の並べ替えを行うには?

日本語のテキストに基づいてソートする必要はありません。私たちはリストを持つソート方法を持っているか、少し拡張メソッドを使うことができます。私が知りたいのは、どのように私は別の言語に基づいてソートするのですか?

不変の文化などについてはMSDNの文書をチェックしましたが、それは役に立たなかった。

+0

あなたのリストの 'Sort()'メソッドをオーバーライドし、言語に応じて正確なソート方法を実装することができます。 – Otiel

答えて

2

あなたがここに文書化されて探している:その後

Thread.CurrentThread.CurrentCulture = = new CultureInfo("ja-JP"); 

アレイ上で定義されます(通常の「並べ替え」メソッドを使用します、あなたは、次の操作を行いたい基本的http://msdn.microsoft.com/en-us/library/a7zyyk0c.aspx

、List <>など)、文字列ソートの日本の規則に従います。

+0

ありがとうCpfohl ...! – Amit

+4

これを行わないでください。スレッドのカルチャを変更すると、幅広い副作用が発生する可能性があります。 StringComparer.Cultureを使用するか、CultureInfoを使用するstring.Compare()オーバーロードを使用します。 –

+0

@ハンス:もしあなたが選択した言語として日本語を選択していれば、その文化に適したものを表示するのは理にかなっていますか? – Crisfole

関連する問題