次の方法で共有


カルチャに依存しない文字列操作を実行する

カルチャに依存する文字列操作は、カルチャごとにユーザーに結果を表示するように設計されたアプリケーションを作成する場合に便利です。 既定では、カルチャに依存するメソッドは、現在のスレッドの CurrentCulture プロパティから使用するカルチャを取得します。

カルチャに依存する文字列操作が目的の動作ではない場合があります。 結果がカルチャに依存しない必要がある場合にカルチャに依存する操作を使用すると、カスタム ケース マッピングと並べ替え規則を使用したカルチャでアプリケーション コードが失敗する可能性があります。 例については、「文字列を使用するためのベスト プラクティス」の「現在のカルチャを使用する文字列比較」セクションを参照してください

文字列操作をカルチャに依存させるか、カルチャを区別しないかは、アプリケーションで結果がどのように使用されるかによって異なります。 ユーザーに結果を表示する文字列操作は、通常、カルチャに依存する必要があります。 たとえば、アプリケーションがローカライズされた文字列の並べ替えられたリストをリスト ボックスに表示する場合、アプリケーションはカルチャに依存する並べ替えを実行する必要があります。

内部的に使用される文字列操作の結果は、通常、カルチャに依存しない必要があります。 一般に、アプリケーションがユーザーに表示されないファイル名、永続化形式、またはシンボリック情報を使用している場合、文字列操作の結果はカルチャによって異なるべきではありません。 たとえば、アプリケーションが文字列を比較して認識された XML タグであるかどうかを判断する場合、比較はカルチャに依存しないようにする必要があります。 さらに、セキュリティ上の決定が文字列比較操作または大文字と小文字の変更操作の結果に基づいている場合、結果が CurrentCultureの値の影響を受けないように、操作はカルチャに依存しないようにする必要があります。

既定でカルチャに依存する文字列操作を実行するほとんどの .NET メソッドでは、カルチャに依存しない結果を保証できるオーバーロードも提供されます。 CultureInfo引数を受け取るこれらのオーバーロードを使用すると、ケース マッピングと並べ替えルールにおけるカルチャによる差異をなくすことができます。 カルチャを認識しない文字列操作の場合は、カルチャを CultureInfo.InvariantCultureとして指定します。

このセクションでは...

このセクションの記事では、既定でカルチャに依存する .NET メソッドを使用して、カルチャに依存しない文字列操作を実行する方法について説明します。

カルチャに依存しない文字列比較の実行
String.CompareメソッドとString.CompareTo メソッドを使用して、カルチャに依存しない文字列比較を実行する方法について説明します。

カルチャを認識しない大文字と小文字の変更の実行
String.ToUpperString.ToLowerChar.ToUpperChar.ToLower の各メソッドを使用してカルチャを認識しない大文字と小文字の変換を実行する方法について説明します。

コレクションでのカルチャに依存しない文字列操作の実行
CaseInsensitiveComparerCaseInsensitiveHashCodeProvider クラス、SortedListArrayList.Sort、およびCollectionsUtil.CreateCaseInsensitiveHashtableを使用して、コレクションでカルチャに依存しない操作を実行する方法について説明します。

配列でのカルチャに依存しない文字列操作の実行
Array.SortメソッドとArray.BinarySearch メソッドを使用して、配列でカルチャに依存しない操作を実行する方法について説明します。

こちらも参照ください