この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

String クラス

 

テキストを一連の UTF-16 コード単位として表現します。

この型の .NET Framework ソース コードを参照するを参照してください。、 Reference Sourceします。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

System.Object
  System.String

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class String : IComparable, ICloneable, IConvertible, 
	IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>

名前説明
System_CAPS_pubmethodString(Char*)

String クラスの新しいインスタンスを初期化し、指定した Unicode 文字配列を指すポインターにより示される値に設定します。

System_CAPS_pubmethodString(Char*, Int32, Int32)

String クラスの新しいインスタンスを初期化し、Unicode 文字の配列を指す指定のポインター、配列内の開始文字位置、および長さにより示される値に設定します。

System_CAPS_pubmethodString(Char, Int32)

String クラスの新しいインスタンスを初期化し、指定した回数だけ繰り返した指定の Unicode 文字が示す値に設定します。

System_CAPS_pubmethodString(Char[])

String クラスの新しいインスタンスを初期化し、Unicode 文字の配列により示される値に設定します。

System_CAPS_pubmethodString(Char[], Int32, Int32)

String クラスの新しいインスタンスを初期化し、Unicode 文字の配列、配列内の開始文字位置、および長さにより示される値に設定します。

System_CAPS_pubmethodString(SByte*)

String クラスの新しいインスタンスを初期化し、8 ビット符号付き整数の配列を指すポインターにより示される値に設定します。

System_CAPS_pubmethodString(SByte*, Int32, Int32)

String クラスの新しいインスタンスを初期化し、8 ビット符号付き整数の配列を指す指定のポインター、配列内の開始位置、および長さにより示される値に設定します。

System_CAPS_pubmethodString(SByte*, Int32, Int32, Encoding)

String クラスの新しいインスタンスを初期化し、8 ビット符号付き整数の配列を指す指定のポインター、配列内の開始位置、長さ、および Encoding オブジェクトにより示される値に設定します。

名前説明
System_CAPS_pubpropertyChars[Int32]

現在の String オブジェクト内の指定された位置にある Char オブジェクトを取得します。

System_CAPS_pubpropertyLength

現在の String オブジェクト内の文字数を取得します。

名前説明
System_CAPS_pubmethodClone()

この String インスタンスへの参照を返します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32)

指定した 2 つの String オブジェクトの部分文字列を比較し、それらの相対位置を並べ替え順序で示す整数を返します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, Boolean)

指定した 2 つの String オブジェクトの部分文字列を比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。比較時に、大文字と小文字を区別するかどうかを設定できます。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)

指定した 2 つの String オブジェクトの部分文字列を比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。比較時に、大文字と小文字を区別するかどうかを指定し、比較に影響を及ぼすカルチャ固有の情報を使用します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

指定した 2 つの String オブジェクトの部分文字列を比較し、2 つの部分文字列の互いのリレーションシップを並べ替え順序で示す整数を返します。比較時に、指定した比較オプションと、比較に影響を及ぼすカルチャ固有の情報を使用します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, StringComparison)

指定した規則を使用して、指定した 2 つの String オブジェクトの部分文字列を比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String)

指定した 2 つの String オブジェクトを比較し、それらの相対位置を並べ替え順序で示す整数を返します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean)

指定した 2 つの String オブジェクトを比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。比較時に、大文字と小文字を区別するかどうかを設定できます。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean, CultureInfo)

指定した 2 つの String オブジェクトを比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。比較時に、大文字と小文字を区別するかどうかを指定し、比較に影響を及ぼすカルチャ固有の情報を使用します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, CultureInfo, CompareOptions)

指定した 2 つの String オブジェクトを比較し、2 つの文字列の互いのリレーションシップを並べ替え順序で示す整数を返します。比較時に、指定した比較オプションと、比較に影響を及ぼすカルチャ固有の情報を使用します。

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, StringComparison)

指定した規則を使用して、指定した 2 つの String オブジェクトを比較し、並べ替え順序におけるそれらの相対位置を示す整数を返します。

System_CAPS_pubmethodSystem_CAPS_staticCompareOrdinal(String, Int32, String, Int32, Int32)

それぞれの部分文字列の対応する Char オブジェクトの数値を評価することにより、指定した 2 つの String オブジェクトの部分文字列を比較します。

System_CAPS_pubmethodSystem_CAPS_staticCompareOrdinal(String, String)

それぞれの文字列の対応する String オブジェクトの数値を評価することで、指定した 2 つの Char を比較します。

System_CAPS_pubmethodCompareTo(Object)

このインスタンスと指定した Object とを比較し、並べ替え順序において、このインスタンスの位置が指定した Object の前、後ろ、または同じのいずれであるかを示します。

System_CAPS_pubmethodCompareTo(String)

このインスタンスと指定した String オブジェクトとを比較し、並べ替え順序において、このインスタンスの位置が指定した文字列の前、後ろ、または同じのいずれであるかを示します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(IEnumerable<String>)

IEnumerable<T> 型の構築された String コレクションのメンバーを連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object)

指定されたオブジェクトの文字列形式を作成します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object)

指定した 2 つのオブジェクトの文字列形式を連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object)

指定した 3 つのオブジェクトの文字列形式を連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object, Object)

4 つの指定したオブジェクトと、オプションの可変長パラメーター リストで指定した任意のオブジェクトの文字列表現を連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object[])

指定された Object 配列の要素の文字列表記を連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String)

指定した 2 つの String インスタンスを連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String)

String の指定した 3 つのインスタンスを連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String, String)

指定した 4 つの String インスタンスを連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat(String[])

指定した String 配列の要素を連結します。

System_CAPS_pubmethodSystem_CAPS_staticConcat<T>(IEnumerable<T>)

IEnumerable<T> 実装のメンバーを連結します。

System_CAPS_pubmethodContains(String)

指定した部分文字列がこの文字列内に存在するかどうかを示す値を返します。

System_CAPS_pubmethodSystem_CAPS_staticCopy(String)

指定した String と同じ値を使用して、String の新しいインスタンスを作成します。

System_CAPS_pubmethodCopyTo(Int32, Char[], Int32, Int32)

このインスタンスの指定位置から指定した数の文字を、Unicode 文字の配列内の指定位置へコピーします。

System_CAPS_pubmethodEndsWith(String)

この文字列インスタンスの末尾が、指定した文字列と一致するかどうかを判断します。

System_CAPS_pubmethodEndsWith(String, Boolean, CultureInfo)

指定されたカルチャを使って比較した場合に、この文字列インスタンスの末尾が、指定された文字列と一致するかどうかを判断します。

System_CAPS_pubmethodEndsWith(String, StringComparison)

指定された比較オプションを使って比較した場合に、この文字列インスタンスの末尾が、指定された文字列と一致するかどうかを判断します。

System_CAPS_pubmethodEquals(Object)

このインスタンスと、指定したオブジェクトの値が同一かどうかを判断します。String オブジェクトを指定する必要があります。(Object.Equals(Object) をオーバーライドします。)

System_CAPS_pubmethodEquals(String)

このインスタンスと、指定した別の String の値が同一かどうかを判断します。

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String)

指定した 2 つの String オブジェクトの値が同一かどうかを判断します。

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String, StringComparison)

指定した 2 つの String オブジェクトの値が同一かどうかを判断します。 比較に使用するカルチャ、大文字と小文字の区別、および、並べ替え規則をパラメーターで指定します。

System_CAPS_pubmethodEquals(String, StringComparison)

この文字列と、指定した String オブジェクトの値が同一かどうかを判断します。 比較に使用するカルチャ、大文字と小文字の区別、および、並べ替え規則をパラメーターで指定します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object)

指定した文字列の 1 つまたは複数の書式項目を、対応するオブジェクトの文字列形式に置換します。 パラメーターにより、カルチャに固有の書式情報が指定されます。

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object, Object)

指定した文字列の書式項目を、指定した 2 つのオブジェクトの文字列形式に置換します。 パラメーターは、カルチャ固有の書式情報を指定します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object, Object, Object)

指定した文字列の書式項目を、指定した 3 つのオブジェクトの文字列形式に置換します。 パラメーターにより、カルチャに固有の書式設定情報を指定します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object[])

指定した文字列の書式項目を、指定した配列内の対応するオブジェクトの文字列表記に置換します。 パラメーターにより、カルチャ固有の書式情報が指定されます。

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object)

指定された文字列の 1 つ以上の書式項目を、指定されたオブジェクトの文字列表記に置換します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object)

指定した文字列の書式項目を、指定した 2 つのオブジェクトの文字列形式に置換します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object, Object)

指定した文字列の書式項目を、指定した 3 つのオブジェクトの文字列形式に置換します。

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object[])

指定した文字列の書式項目を、指定した配列内の対応するオブジェクトの文字列形式に置換します。

System_CAPS_pubmethodGetEnumerator()

この文字列に含まれる個々の文字を反復処理するオブジェクトを取得します。

System_CAPS_pubmethodGetHashCode()

この文字列のハッシュ コードを返します。(Object.GetHashCode() をオーバーライドします。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodGetTypeCode()

TypeCode クラスには String を返します。

System_CAPS_pubmethodIndexOf(Char)

指定した Unicode 文字がこの文字列内で最初に見つかった位置の 0 から始まるインデックスをレポートします。

System_CAPS_pubmethodIndexOf(Char, Int32)

指定した Unicode 文字がこの文字列内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は、指定した文字位置から開始されます。

System_CAPS_pubmethodIndexOf(Char, Int32, Int32)

指定文字がこのインスタンス内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は指定した文字位置から開始され、指定した数の文字位置が検査されます。

System_CAPS_pubmethodIndexOf(String)

指定された文字列がこのインスタンス内で最初に見つかった位置の 0 から始まるインデックスをレポートします。

System_CAPS_pubmethodIndexOf(String, Int32)

指定された文字列がこのインスタンス内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は、指定した文字位置から開始されます。

System_CAPS_pubmethodIndexOf(String, Int32, Int32)

指定された文字列がこのインスタンス内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は指定した文字位置から開始され、指定した数の文字位置が検査されます。

System_CAPS_pubmethodIndexOf(String, Int32, Int32, StringComparison)

指定した文字列が現在の String オブジェクト内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 現在の文字列での検索開始位置、現在の文字列で検索する文字の数、および指定した文字列に使用する検索の種類をパラメーターで指定します。

System_CAPS_pubmethodIndexOf(String, Int32, StringComparison)

指定した文字列が現在の String オブジェクト内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 現在の文字列内での検索の開始位置、および指定した文字列に使用する検索の種類をパラメーターで指定します。

System_CAPS_pubmethodIndexOf(String, StringComparison)

指定した文字列が現在の String オブジェクト内で最初に見つかった位置の 0 から始まるインデックスをレポートします。 指定した文字列に使用する検索の種類をパラメーターで指定します。

System_CAPS_pubmethodIndexOfAny(Char[])

Unicode 文字の指定した配列内にある文字がこのインスタンスで最初に見つかった位置の 0 から始まるインデックスをレポートします。

System_CAPS_pubmethodIndexOfAny(Char[], Int32)

Unicode 文字の指定した配列内にある文字がこのインスタンスで最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は、指定した文字位置から開始されます。

System_CAPS_pubmethodIndexOfAny(Char[], Int32, Int32)

Unicode 文字の指定した配列内にある文字がこのインスタンスで最初に見つかった位置の 0 から始まるインデックスをレポートします。 検索は指定した文字位置から開始され、指定した数の文字位置が検査されます。

System_CAPS_pubmethodInsert(Int32, String)

このインスタンス内の指定したインデックス位置に指定した文字列を挿入した、新しい文字列を返します。

System_CAPS_pubmethodSystem_CAPS_staticIntern(String)

指定した String へのシステム参照を取得します。

System_CAPS_pubmethodSystem_CAPS_staticIsInterned(String)

指定した String への参照を取得します。

System_CAPS_pubmethodIsNormalized()

この文字列が、Unicode 正規形 C であるかどうかを示します。

System_CAPS_pubmethodIsNormalized(NormalizationForm)

この文字列が、指定された Unicode 正規形であるかどうかを示します。

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrEmpty(String)

指定された文字列が null または Empty 文字列であるかどうかを示します。

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrWhiteSpace(String)

指定された文字列が null または空であるか、空白文字だけで構成されているかどうかを示します。

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, IEnumerable<String>)

IEnumerable<T> 型の構築された String コレクションのメンバーを連結します。各メンバーの間には、指定した区切り記号が挿入されます。

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, Object[])

オブジェクト配列の要素を連結します。各要素の間には、指定した区切り記号が挿入されます。

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, String[])

文字列配列のすべての要素を連結します。各要素の間には、指定した区切り記号が挿入されます。

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, String[], Int32, Int32)

文字列配列の指定した要素を連結します。各要素の間には、指定した区切り記号が挿入されます。

System_CAPS_pubmethodSystem_CAPS_staticJoin<T>(String, IEnumerable<T>)

コレクションのメンバーを連結します。各メンバーの間には、指定した区切り記号が挿入されます。

System_CAPS_pubmethodLastIndexOf(Char)

このインスタンス内で最後に出現する指定 Unicode 文字の 0 から始まるインデックス位置をレポートします。

System_CAPS_pubmethodLastIndexOf(Char, Int32)

このインスタンス内で最後に出現する指定 Unicode 文字の 0 から始まるインデックス位置をレポートします。 検索は、指定された文字位置から開始され、文字列の先頭に向かって逆方向に進みます。

System_CAPS_pubmethodLastIndexOf(Char, Int32, Int32)

このインスタンス内の部分文字列で最後に出現する指定 Unicode 文字の 0 から始まるインデックス位置をレポートします。 検索は指定された文字位置から開始し、文字列の開始に向かって後方に移動し、文字位置の指定された数だけ行われます。

System_CAPS_pubmethodLastIndexOf(String)

指定された文字列がこのインスタンス内で最後に見つかった 0 から始まるインデックス位置をレポートします。

System_CAPS_pubmethodLastIndexOf(String, Int32)

このインスタンス内で最後に出現する指定された文字列の 0 から始まるインデックス位置をレポートします。 検索は、指定された文字位置から開始され、文字列の先頭に向かって逆方向に進みます。

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32)

指定された文字列がこのインスタンス内で最後に見つかった 0 から始まるインデックス位置をレポートします。 検索は指定された文字位置から開始され、指定した文字位置の数だけ文字列の先頭に向かって逆向きに移動して実行されます。

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32, StringComparison)

指定された文字列がこのインスタンス内で最後に見つかった 0 から始まるインデックス位置をレポートします。 検索は指定された文字位置から開始し、文字列の開始に向かって後方に移動し、文字位置の指定された数だけ行われます。 指定した文字列を検索するときに実行する比較の種類をパラメーターで指定します。

System_CAPS_pubmethodLastIndexOf(String, Int32, StringComparison)

指定した文字列が現在の String オブジェクト内で最後に見つかった 0 から始まる位置のインデックスをレポートします。 検索は、指定された文字位置から開始され、文字列の先頭に向かって逆方向に進みます。 指定した文字列を検索するときに実行する比較の種類をパラメーターで指定します。

System_CAPS_pubmethodLastIndexOf(String, StringComparison)

指定した文字列が現在の String オブジェクト内で最後に見つかった 0 から始まる位置のインデックスをレポートします。 指定した文字列に使用する検索の種類をパラメーターで指定します。

System_CAPS_pubmethodLastIndexOfAny(Char[])

Unicode 配列内の指定した 1 つ以上の文字がこのインスタンスで最後に見つかった 0 から始まるインデックス位置をレポートします。

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32)

Unicode 配列内の指定した 1 つ以上の文字がこのインスタンスで最後に見つかった 0 から始まるインデックス位置をレポートします。 検索は、指定された文字位置から開始され、文字列の先頭に向かって逆方向に進みます。

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32, Int32)

Unicode 配列内の指定した 1 つ以上の文字がこのインスタンスで最後に見つかった 0 から始まるインデックス位置をレポートします。 検索は指定された文字位置から開始し、文字列の開始に向かって後方に移動し、文字位置の指定された数だけ行われます。

System_CAPS_pubmethodNormalize()

この文字列と同じテキスト値を持ち、なおかつ、バイナリ表現が Unicode 正規形 C である新しい文字列を返します。

System_CAPS_pubmethodNormalize(NormalizationForm)

この文字列と同じテキスト値を持ち、なおかつ、バイナリ表現が、指定された Unicode 正規形である新しい文字列を返します。

System_CAPS_pubmethodPadLeft(Int32)

指定された文字数になるまで左側に空白を埋め込むことで、このインスタンス内の文字を右寄せした新しい文字列を返します。

System_CAPS_pubmethodPadLeft(Int32, Char)

指定された文字数になるまで左側に指定された Unicode 文字を埋め込むことで、このインスタンス内の文字を右寄せした新しい文字列を返します。

System_CAPS_pubmethodPadRight(Int32)

指定された文字数になるまで右側に空白を埋め込むことで、この文字列内の文字を左寄せした新しい文字列を返します。

System_CAPS_pubmethodPadRight(Int32, Char)

指定された文字数になるまで右側に指定された Unicode 文字を埋め込むことで、この文字列内の文字を左寄せした新しい文字列を返します。

System_CAPS_pubmethodRemove(Int32)

現在のインスタンスの指定した位置から指定した最後の位置までの全文字が削除された新しい文字列を返します。

System_CAPS_pubmethodRemove(Int32, Int32)

現在のインスタンス内の指定した位置から指定した文字数が削除された新しい文字列を返します。

System_CAPS_pubmethodReplace(Char, Char)

このインスタンスに出現する指定された Unicode 文字をすべて、別の指定された Unicode 文字に置換した新しい文字列を返します。

System_CAPS_pubmethodReplace(String, String)

現在のインスタンスに出現する指定した文字列をすべて、別に指定した文字列に置換した新しい文字列を返します。

System_CAPS_pubmethodSplit(Char[])

配列内の文字に基づいて文字列を部分文字列に分割します。

System_CAPS_pubmethodSplit(Char[], Int32)

配列内の文字に基づいて文字列を最大数の部分文字列に分割します。 返される部分文字列の最大数を指定します。

System_CAPS_pubmethodSplit(Char[], Int32, StringSplitOptions)

配列内の文字に基づいて文字列を最大数の部分文字列に分割します。

System_CAPS_pubmethodSplit(Char[], StringSplitOptions)

配列内の文字に基づいて文字列を部分文字列に分割します。 部分文字列が空の配列の要素を含めるかどうかを指定することができます。

System_CAPS_pubmethodSplit(String[], Int32, StringSplitOptions)

配列内の文字列に基づいて文字列を最大数の部分文字列に分割します。 部分文字列が空の配列の要素を含めるかどうかを指定することができます。

System_CAPS_pubmethodSplit(String[], StringSplitOptions)

配列内の文字列に基づいて文字列を部分文字列に分割します。 部分文字列が空の配列の要素を含めるかどうかを指定することができます。

System_CAPS_pubmethodStartsWith(String)

この文字列インスタンスの先頭が、指定した文字列と一致するかどうかを判断します。

System_CAPS_pubmethodStartsWith(String, Boolean, CultureInfo)

指定されたカルチャを使って比較した場合に、この文字列インスタンスの先頭が、指定された文字列と一致するかどうかを判断します。

System_CAPS_pubmethodStartsWith(String, StringComparison)

指定された比較オプションを使って比較した場合に、この文字列インスタンスの先頭が、指定された文字列と一致するかどうかを判断します。

System_CAPS_pubmethodSubstring(Int32)

このインスタンスから部分文字列を取得します。 部分文字列は、文字列中の指定した文字の位置で開始し、文字列の末尾まで続きます。

System_CAPS_pubmethodSubstring(Int32, Int32)

インスタンスから部分文字列を取得します。 この部分文字列は、指定した文字位置から開始し、指定した文字数の文字列です。

System_CAPS_pubmethodToCharArray()

このインスタンスの文字を Unicode 文字配列へコピーします。

System_CAPS_pubmethodToCharArray(Int32, Int32)

このインスタンスの指定した部分文字列の文字を Unicode 文字配列へコピーします。

System_CAPS_pubmethodToLower()

この文字列のコピーを小文字に変換して返します。

System_CAPS_pubmethodToLower(CultureInfo)

指定されたカルチャの大文字と小文字の規則を使用して、この文字列のコピーを小文字に変換して返します。

System_CAPS_pubmethodToLowerInvariant()

インバリアント カルチャの大文字と小文字の規則を使用して、この String オブジェクトのコピーを小文字に変換して返します。

System_CAPS_pubmethodToString()

String のこのインスタンスを返します。実際の変換処理は実行されません。(Object.ToString() をオーバーライドします。)

System_CAPS_pubmethodToString(IFormatProvider)

String のこのインスタンスを返します。実際の変換処理は実行されません。

System_CAPS_pubmethodToUpper()

この文字列のコピーを大文字に変換して返します。

System_CAPS_pubmethodToUpper(CultureInfo)

指定されたカルチャの大文字と小文字の規則を使用して、この文字列のコピーを大文字に変換して返します。

System_CAPS_pubmethodToUpperInvariant()

インバリアント カルチャの大文字と小文字の規則を使用して、この String オブジェクトのコピーを大文字に変換して返します。

System_CAPS_pubmethodTrim()

現在の String オブジェクトの先頭および末尾にある空白文字をすべて削除します。

System_CAPS_pubmethodTrim(Char[])

現在の String オブジェクトの先頭および末尾から、配列で指定された文字セットをすべて削除します。

System_CAPS_pubmethodTrimEnd(Char[])

現在の String オブジェクトの末尾から、配列で指定された文字セットをすべて削除します。

System_CAPS_pubmethodTrimStart(Char[])

現在の String オブジェクトの先頭から、配列で指定された文字セットをすべて削除します。

名前説明
System_CAPS_pubfieldSystem_CAPS_staticEmpty

空の文字列を表します。 このフィールドは読み取り専用です。

名前説明
System_CAPS_puboperatorSystem_CAPS_staticEquality(String, String)

指定した 2 つの文字列の値が同一かどうかを判断します。

System_CAPS_puboperatorSystem_CAPS_staticInequality(String, String)

指定した 2 つの文字列の値が異なるかどうかを判断します。

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable<Char>.GetEnumerator()

現在の String オブジェクトを反復処理する列挙子を返します。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

現在の String オブジェクトを反復処理する列挙子を返します。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToBoolean」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToByte」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToChar」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToDateTime」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToDecimal」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToDouble」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToInt16」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToInt32」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToInt64」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToSByte」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToSingle」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToType」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToUInt16」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToUInt32」を参照してください。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このメンバーの詳細については、「ToUInt64」を参照してください。

名前説明
System_CAPS_pubmethodAggregate<Char>(Func<Char, Char, Char>)

オーバーロードされます。シーケンスにアキュムレータ関数を適用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodAggregate<Char, TAccumulate>(TAccumulate, Func<TAccumulate, Char, TAccumulate>)

オーバーロードされます。シーケンスにアキュムレータ関数を適用します。 指定されたシード値が最初のアキュムレータ値として使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodAggregate<Char, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, Char, TAccumulate>, Func<TAccumulate, TResult>)

オーバーロードされます。シーケンスにアキュムレータ関数を適用します。 指定したシード値は最初のアキュムレータ値として使用され、指定した関数は結果値の選択に使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodAll<Char>(Func<Char, Boolean>)

シーケンスのすべての要素が条件を満たすかどうかを決定します。(Enumerable によって定義されています。)

System_CAPS_pubmethodAny<Char>()

オーバーロードされます。シーケンスがすべての要素を含めるかどうかを決定します。(Enumerable によって定義されています。)

System_CAPS_pubmethodAny<Char>(Func<Char, Boolean>)

オーバーロードされます。シーケンスの任意の要素が条件を満たすかどうかを決定します。(Enumerable によって定義されています。)

System_CAPS_pubmethodAsEnumerable<Char>()

として型指定された入力返す IEnumerable<T>します。(Enumerable によって定義されています。)

System_CAPS_pubmethodAsParallel()

オーバーロードされます。クエリの並列化を有効にします。(ParallelEnumerable によって定義されています。)

System_CAPS_pubmethodAsParallel<Char>()

オーバーロードされます。クエリの並列化を有効にします。(ParallelEnumerable によって定義されています。)

System_CAPS_pubmethodAsQueryable()

オーバーロードされます。変換、 IEnumerable に、 IQueryableです。(Queryable によって定義されています。)

System_CAPS_pubmethodAsQueryable<Char>()

オーバーロードされます。ジェネリック型に変換 IEnumerable<T> 汎用 IQueryable<T>します。(Queryable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Decimal>)

オーバーロードされます。一連の平均値を計算 Decimal 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Double>)

オーバーロードされます。一連の平均値を計算 Double 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Int32>)

オーバーロードされます。一連の平均値を計算 Int32 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Int64>)

オーバーロードされます。一連の平均値を計算 Int64 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Decimal>>)

オーバーロードされます。Null 許容型のシーケンスの平均を計算 Decimal 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Double>>)

オーバーロードされます。Null 許容型のシーケンスの平均を計算 Double 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Int32>>)

オーバーロードされます。Null 許容型のシーケンスの平均を計算 Int32 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Int64>>)

オーバーロードされます。Null 許容型のシーケンスの平均を計算 Int64 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Single>>)

オーバーロードされます。Null 許容型のシーケンスの平均を計算 Single 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodAverage<Char>(Func<Char, Single>)

オーバーロードされます。一連の平均値を計算 Single 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodCast<TResult>()

要素をキャスト、 IEnumerable 指定した型にします。(Enumerable によって定義されています。)

System_CAPS_pubmethodConcat<Char>(IEnumerable<Char>)

2 つのシーケンスを連結します。(Enumerable によって定義されています。)

System_CAPS_pubmethodContains<Char>(Char)

オーバーロードされます。シーケンスが既定の等値比較子を使用して、指定した要素を含めるかどうかを決定します。(Enumerable によって定義されています。)

System_CAPS_pubmethodContains<Char>(Char, IEqualityComparer<Char>)

オーバーロードされます。指定したを使用して指定された要素がシーケンスに含まれているかどうか判断 IEqualityComparer<T>します。(Enumerable によって定義されています。)

System_CAPS_pubmethodCount<Char>()

オーバーロードされます。シーケンス内の要素の数を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodCount<Char>(Func<Char, Boolean>)

オーバーロードされます。指定されたシーケンス内の要素が条件を満たすを表す数値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodDefaultIfEmpty<Char>()

オーバーロードされます。シーケンスが空の場合は、シングルトン コレクションに指定されたシーケンスまたは型パラメーターの既定値の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodDefaultIfEmpty<Char>(Char)

オーバーロードされます。シーケンスが空の場合は、シングルトン コレクションに指定されたシーケンスまたは指定した値の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodDistinct<Char>()

オーバーロードされます。値を比較する既定の等値比較子を使用して、シーケンスから一意の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodDistinct<Char>(IEqualityComparer<Char>)

オーバーロードされます。指定したを使用してシーケンスから一意の要素を返します IEqualityComparer<T> 値を比較します。(Enumerable によって定義されています。)

System_CAPS_pubmethodElementAt<Char>(Int32)

シーケンスの指定したインデックス位置にある要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodElementAtOrDefault<Char>(Int32)

シーケンス内の指定したインデックス位置にある要素を返します。インデックスが範囲外の場合は既定値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodExcept<Char>(IEnumerable<Char>)

オーバーロードされます。既定の等値比較子を使用して値を比較することには、2 つのシーケンスの差集合を生成します。(Enumerable によって定義されています。)

System_CAPS_pubmethodExcept<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

オーバーロードされます。指定されたを使用して 2 つのシーケンスの差集合を生成 IEqualityComparer<T> 値を比較します。(Enumerable によって定義されています。)

System_CAPS_pubmethodFirst<Char>()

オーバーロードされます。シーケンスの最初の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodFirst<Char>(Func<Char, Boolean>)

オーバーロードされます。指定された条件を満たす、シーケンスの最初の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodFirstOrDefault<Char>()

オーバーロードされます。シーケンスの最初の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodFirstOrDefault<Char>(Func<Char, Boolean>)

オーバーロードされます。条件を満たす、シーケンスの最初の要素を返します。このような要素が見つからない場合は既定値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey>(Func<Char, TKey>)

オーバーロードされます。指定されたキー セレクター関数に従ってシーケンスの要素をグループ化します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

オーバーロードされます。指定された比較子を使用してキーを比較して、指定されたキー セレクター関数に従ってシーケンスの要素をグループ化します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

オーバーロードされます。指定されたキー セレクター関数と、指定された関数を使用して各グループの要素を射影に従ってシーケンスの要素をグループ化します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

オーバーロードされます。キー セレクター関数に従ってシーケンスの要素をグループ化します。 キーの比較には、比較子を使用し、各グループの要素の射影には、指定された関数を使用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>)

オーバーロードされます。指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>, IEqualityComparer<TKey>)

オーバーロードされます。指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。 キーの比較には、指定された比較子を使用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)

オーバーロードされます。指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。 各グループの要素は、指定された関数を使用して射影されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

オーバーロードされます。指定されたキー セレクター関数に従ってシーケンスの要素をグループ化し、各グループとそのキーから結果値を作成します。 キー値の比較には、指定された比較子を使用し、各グループの要素の射影には、指定された関数を使用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>)

オーバーロードされます。結果をグループ化キーが等しいかどうかに基づいて 2 つのシーケンスの要素相互に関連付けます。 キーの比較には既定の等値比較子が使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

オーバーロードされます。結果をグループ化キーの等値に基づいて 2 つのシーケンスの要素相互に関連付けます。 指定した IEqualityComparer<T> キーを比較するために使用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodIntersect<Char>(IEnumerable<Char>)

オーバーロードされます。既定の等値比較子を使用して値を比較することには、2 つのシーケンスの積集合を生成します。(Enumerable によって定義されています。)

System_CAPS_pubmethodIntersect<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

オーバーロードされます。指定されたを使用して 2 つのシーケンスの積集合を生成 IEqualityComparer<T> 値を比較します。(Enumerable によって定義されています。)

System_CAPS_pubmethodJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>)

オーバーロードされます。一致するキーに基づいて 2 つのシーケンスの要素を基準になります。 キーの比較には既定の等値比較子が使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>, IEqualityComparer<TKey>)

オーバーロードされます。一致するキーに基づいて 2 つのシーケンスの要素を基準になります。 指定した IEqualityComparer<T> キーを比較するために使用します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLast<Char>()

オーバーロードされます。シーケンスの最後の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLast<Char>(Func<Char, Boolean>)

オーバーロードされます。指定された条件を満たす、シーケンスの最後の要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLastOrDefault<Char>()

オーバーロードされます。シーケンスの最後の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLastOrDefault<Char>(Func<Char, Boolean>)

オーバーロードされます。条件を満たす、シーケンスの最後の要素を返します。このような要素が見つからない場合は既定値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLongCount<Char>()

オーバーロードされます。返します。、 Int64 シーケンス内の要素の合計数を表します。(Enumerable によって定義されています。)

System_CAPS_pubmethodLongCount<Char>(Func<Char, Boolean>)

オーバーロードされます。返します。、 Int64 条件を満たすシーケンス内の要素の数を表します。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>()

オーバーロードされます。ジェネリック シーケンスの最大値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Decimal>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最大値を返します Decimal 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Double>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最大値を返します Double 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Int32>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最大値を返します Int32 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Int64>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最大値を返します Int64 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Decimal>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、null 許容最大値を返します Decimal 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Double>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、null 許容最大値を返します Double 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Int32>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、null 許容最大値を返します Int32 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Int64>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、null 許容最大値を返します Int64 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Single>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、null 許容最大値を返します Single 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char>(Func<Char, Single>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最大値を返します Single 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMax<Char, TResult>(Func<Char, TResult>)

オーバーロードされます。ジェネリック シーケンスの各要素に対して変換関数の呼び出しを結果の最大値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>()

オーバーロードされます。ジェネリック シーケンスの最小値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Decimal>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を返します Decimal 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Double>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を返します Double 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Int32>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を返します Int32 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Int64>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を返します Int64 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Decimal>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を null 許容型を返します Decimal 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Double>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を null 許容型を返します Double 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Int32>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を null 許容型を返します Int32 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Int64>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を null 許容型を返します Int64 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Single>>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を null 許容型を返します Single 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char>(Func<Char, Single>)

オーバーロードされます。シーケンスの各要素に対して変換関数を呼び出し、最小値を返します Single 値。(Enumerable によって定義されています。)

System_CAPS_pubmethodMin<Char, TResult>(Func<Char, TResult>)

オーバーロードされます。ジェネリック シーケンスの各要素に対して変換関数の呼び出しを結果の最小値を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodOfType<TResult>()

要素をフィルター処理、 IEnumerable 、指定した型に基づいています。(Enumerable によって定義されています。)

System_CAPS_pubmethodOrderBy<Char, TKey>(Func<Char, TKey>)

オーバーロードされます。キーに従って昇順のシーケンスの要素を並べ替えます。(Enumerable によって定義されています。)

System_CAPS_pubmethodOrderBy<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)

オーバーロードされます。指定された比較子を使用して、昇順のシーケンスの要素を並べ替えます。(Enumerable によって定義されています。)

System_CAPS_pubmethodOrderByDescending<Char, TKey>(Func<Char, TKey>)

オーバーロードされます。キーに従って降順のシーケンスの要素を並べ替えます。(Enumerable によって定義されています。)

System_CAPS_pubmethodOrderByDescending<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)

オーバーロードされます。指定された比較子を使用してシーケンスの要素を降順に並べ替えます。(Enumerable によって定義されています。)

System_CAPS_pubmethodReverse<Char>()

シーケンス内の要素の順序を反転します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelect<Char, TResult>(Func<Char, TResult>)

オーバーロードされます。シーケンスの各要素を新しいフォームに射影します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelect<Char, TResult>(Func<Char, Int32, TResult>)

オーバーロードされます。要素のインデックスを組み込むことにより、新しいフォームにシーケンスの各要素を射影します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelectMany<Char, TResult>(Func<Char, IEnumerable<TResult>>)

オーバーロードされます。シーケンスの各要素、 IEnumerable<T> し、結果のシーケンスを 1 つのシーケンスに平坦化します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelectMany<Char, TResult>(Func<Char, Int32, IEnumerable<TResult>>)

オーバーロードされます。シーケンスの各要素、 IEnumerable<T>, 、結果のシーケンスを 1 つのシーケンスにフラット化します。 各ソース要素のインデックスは、その要素の射影されたフォームで使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelectMany<Char, TCollection, TResult>(Func<Char, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)

オーバーロードされます。シーケンスの各要素、 IEnumerable<T>, 、結果のシーケンスを 1 つのシーケンスに平坦化し、そこにある各要素に対して結果のセレクター関数を呼び出します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSelectMany<Char, TCollection, TResult>(Func<Char, Int32, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)

オーバーロードされます。シーケンスの各要素、 IEnumerable<T>, 、結果のシーケンスを 1 つのシーケンスに平坦化し、そこにある各要素に対して結果のセレクター関数を呼び出します。 各ソース要素のインデックスは、その要素の中間の射影されたフォームで使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodSequenceEqual<Char>(IEnumerable<Char>)

オーバーロードされます。型に対して既定の等値比較子を使用して要素を比較することで、2 つのシーケンスが等しいかどうかを決定します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSequenceEqual<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

オーバーロードされます。使用して、その要素を比較することによって 2 つのシーケンスが等しいかどうかを判断 IEqualityComparer<T>します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSingle<Char>()

オーバーロードされます。シーケンスの唯一の要素を返し、シーケンス内の要素が 1 つだけでない場合は例外をスローします。(Enumerable によって定義されています。)

System_CAPS_pubmethodSingle<Char>(Func<Char, Boolean>)

オーバーロードされます。指定された条件を満たす、シーケンスの唯一の要素を返し、そのような要素が複数存在する場合は例外をスローします。(Enumerable によって定義されています。)

System_CAPS_pubmethodSingleOrDefault<Char>()

オーバーロードされます。シーケンスが空である場合は、シーケンス、または既定値の唯一の要素を返しますこのメソッドは、シーケンス内に複数の要素がある場合に例外をスローします。(Enumerable によって定義されています。)

System_CAPS_pubmethodSingleOrDefault<Char>(Func<Char, Boolean>)

オーバーロードされます。指定された条件を満たすシーケンスの唯一の要素、またはそのような要素がない場合は既定値を返します。このメソッドは、複数の要素が条件を満たす場合に例外をスローします。(Enumerable によって定義されています。)

System_CAPS_pubmethodSkip<Char>(Int32)

指定された数のシーケンス内の要素をバイパスし、残りの要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodSkipWhile<Char>(Func<Char, Boolean>)

オーバーロードされます。指定した条件が true で、残りの要素を返す限りは、シーケンス内の要素をバイパスします。(Enumerable によって定義されています。)

System_CAPS_pubmethodSkipWhile<Char>(Func<Char, Int32, Boolean>)

オーバーロードされます。指定した条件が true で、残りの要素を返す限りは、シーケンス内の要素をバイパスします。 要素のインデックスは、述語関数のロジックで使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Decimal>)

オーバーロードされます。シーケンスの合計を計算 Decimal 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Double>)

オーバーロードされます。シーケンスの合計を計算 Double 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Int32>)

オーバーロードされます。シーケンスの合計を計算 Int32 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Int64>)

オーバーロードされます。シーケンスの合計を計算 Int64 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Decimal>>)

オーバーロードされます。Null 許容型のシーケンスの合計を計算 Decimal 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Double>>)

オーバーロードされます。Null 許容型のシーケンスの合計を計算 Double 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Int32>>)

オーバーロードされます。Null 許容型のシーケンスの合計を計算 Int32 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Int64>>)

オーバーロードされます。Null 許容型のシーケンスの合計を計算 Int64 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Single>>)

オーバーロードされます。Null 許容型のシーケンスの合計を計算 Single 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodSum<Char>(Func<Char, Single>)

オーバーロードされます。シーケンスの合計を計算 Single 入力シーケンスの各要素に対して変換関数を呼び出すことによって取得される値。(Enumerable によって定義されています。)

System_CAPS_pubmethodTake<Char>(Int32)

シーケンスの先頭から指定した数の連続する要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodTakeWhile<Char>(Func<Char, Boolean>)

オーバーロードされます。指定された条件が true の場合に限り、シーケンスから要素を返します。(Enumerable によって定義されています。)

System_CAPS_pubmethodTakeWhile<Char>(Func<Char, Int32, Boolean>)

オーバーロードされます。指定された条件が true の場合に限り、シーケンスから要素を返します。 要素のインデックスは、述語関数のロジックで使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodToArray<Char>()

配列を作成、 IEnumerable<T>です。(Enumerable によって定義されています。)

System_CAPS_pubmethodToDictionary<Char, TKey>(Func<Char, TKey>)

オーバーロードされます。作成、 Dictionary<TKey, TValue> から、 IEnumerable<T> 指定されたキー セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToDictionary<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

オーバーロードされます。作成、 Dictionary<TKey, TValue> から、 IEnumerable<T> 指定されたキー セレクター関数およびキーの比較子に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

オーバーロードされます。作成、 Dictionary<TKey, TValue> から、 IEnumerable<T> 指定されたキー セレクター関数および要素セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

オーバーロードされます。作成、 Dictionary<TKey, TValue> から、 IEnumerable<T> 指定されたキー セレクター関数、比較演算子、および要素セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToList<Char>()

作成、 List<T> から、 IEnumerable<T>です。(Enumerable によって定義されています。)

System_CAPS_pubmethodToLookup<Char, TKey>(Func<Char, TKey>)

オーバーロードされます。作成、 Lookup<TKey, TElement> から、 IEnumerable<T> 指定されたキー セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToLookup<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

オーバーロードされます。作成、 Lookup<TKey, TElement> から、 IEnumerable<T> 指定されたキー セレクター関数およびキーの比較子に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

オーバーロードされます。作成、 Lookup<TKey, TElement> から、 IEnumerable<T> 指定されたキー セレクター関数および要素セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

オーバーロードされます。作成、 Lookup<TKey, TElement> から、 IEnumerable<T> 指定されたキー セレクター関数、比較演算子、および要素セレクター関数に従ってします。(Enumerable によって定義されています。)

System_CAPS_pubmethodUnion<Char>(IEnumerable<Char>)

オーバーロードされます。既定の等値比較子を使用して 2 つのシーケンスの和集合を生成します。(Enumerable によって定義されています。)

System_CAPS_pubmethodUnion<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

オーバーロードされます。指定したを使用して 2 つのシーケンスの和集合を生成 IEqualityComparer<T>します。(Enumerable によって定義されています。)

System_CAPS_pubmethodWhere<Char>(Func<Char, Boolean>)

オーバーロードされます。述語に基づいて値のシーケンスをフィルター処理します。(Enumerable によって定義されています。)

System_CAPS_pubmethodWhere<Char>(Func<Char, Int32, Boolean>)

オーバーロードされます。述語に基づいて値のシーケンスをフィルター処理します。 各要素のインデックスは、述語関数のロジックで使用されます。(Enumerable によって定義されています。)

System_CAPS_pubmethodZip<Char, TSecond, TResult>(IEnumerable<TSecond>, Func<Char, TSecond, TResult>)

指定された関数を結果のシーケンスを生成する 2 つのシーケンスに対応する要素に適用します。(Enumerable によって定義されています。)

System_CAPS_noteメモ

この型の .NET Framework ソース コードを参照してください、 Reference Sourceします。 ソース コードをオンラインで参照、オフライン表示のリファレンスをダウンロードおよびデバッグ中にソース (パッチや更新を含む) をステップsee instructions.

文字列とは、テキストを表すために使用される文字のシーケンシャル コレクションです。 A String オブジェクトのシーケンシャル コレクションは、 System.Char は、文字列を表すオブジェクト System.Char オブジェクトは utf-16 コード単位に対応します。 値、 String オブジェクトのシーケンシャル コレクションの内容は、 System.Char オブジェクト、および値が変更可能である (つまり、これが読み取り専用)。 文字列の詳細については、不変性は、次を参照してください。、 不変性と StringBuilder クラス このトピックで後述します。 最大サイズ、 String メモリ内のオブジェクトが 2 GB、つまり約 10億文字です。

このセクションの内容:

文字列オブジェクトをインスタンス化します。
Char 型のオブジェクトと Unicode 文字
文字列および Unicode Standard
文字列と埋め込まれた null 文字
文字列とインデックス
Null 文字列と空の文字列
不変性と StringBuilder クラス
カルチャに依存する操作との比較の序数
正規化
カテゴリ別の文字列操作

インスタンスを作成できる、 String 次の方法でオブジェクト。

  • リテラル文字列を割り当てることによって、 String 変数です。 これは、文字列を作成する最もよく使用されるメソッドです。 次の例では、割り当てを使用して、いくつかの文字列を作成します。 C# の場合、円記号 (\) は、エスケープ文字であるため、文字列にリテラル円記号をエスケープする必要がありますかいる @-引用符で囲まれた文字列全体をする必要がありますに注意してください。

    string string1 = "This is a string created by assignment.";
    Console.WriteLine(string1);
    string string2a = "The path is C:\\PublicDocuments\\Report1.doc";
    Console.WriteLine(string2a);
    string string2b = @"The path is C:\PublicDocuments\Report1.doc";
    Console.WriteLine(string2b);
    // The example displays the following output:
    //       This is a string created by assignment.
    //       The path is C:\PublicDocuments\Report1.doc
    //       The path is C:\PublicDocuments\Report1.doc      
    
  • 呼び出して、 String クラスのコンス トラクターです。 次の例では、いくつかのクラスのコンス トラクターを呼び出すことによって文字列がインスタンス化します。 文字配列またはパラメーターとしての符号付きバイト配列へのポインターを含むコンス トラクターのいくつか注意してください。 Visual Basic は、これらのコンス トラクターの呼び出しをサポートしていません。 詳細については String コンス トラクターを参照してください、 String コンス トラクターの概要です。

    char[] chars = { 'w', 'o', 'r', 'd' };
    sbyte[] bytes = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x00 };
    
    // Create a string from a character array.
    string string1 = new string(chars);
    Console.WriteLine(string1);
    
    // Create a string that consists of a character repeated 20 times.
    string string2 = new string('c', 20);
    Console.WriteLine(string2);
    
    string stringFromBytes = null;
    string stringFromChars = null;
    unsafe
    {
       fixed (sbyte* pbytes = bytes)
       {
          // Create a string from a pointer to a signed byte array.
          stringFromBytes = new string(pbytes);
       }
       fixed (char* pchars = chars)
       {
          // Create a string from a pointer to a character array.
          stringFromChars = new string(pchars);
       }
    }
    Console.WriteLine(stringFromBytes);
    Console.WriteLine(stringFromChars);
    // The example displays the following output:
    //       word
    //       cccccccccccccccccccc
    //       ABCDE
    //       word  
    
  • 文字列連結演算子を使用して、(+、C# の場合と (& a) または + Visual Basic で) の任意の組み合わせから 1 つの文字列を作成する String インスタンスと文字列リテラルです。 次の例では、文字列連結演算子の使用を示します。

    string string1 = "Today is " + DateTime.Now.ToString("D") + ".";
    Console.WriteLine(string1);
    
    string string2 = "This is one sentence. " + "This is a second. ";
    string2 += "This is a third sentence.";
    Console.WriteLine(string2);
    // The example displays output like the following:
    //    Today is Tuesday, July 06, 2011.
    //    This is one sentence. This is a second. This is a third sentence.
    
  • プロパティを取得するか、メソッドを呼び出すことによって、文字列を返します。 次の例のメソッドを使用する、 String 大きい文字列から部分文字列を取得するクラス。

    string sentence = "This sentence has five words.";
    // Extract the second word.
    int startPosition = sentence.IndexOf(" ") + 1;
    string word2 = sentence.Substring(startPosition,
                                      sentence.IndexOf(" ", startPosition) - startPosition);
    Console.WriteLine("Second word: " + word2);
    // The example displays the following output:
    //       Second word: sentence
    
  • 値またはオブジェクトを文字列形式に変換する書式指定メソッドを呼び出します。 次の例では、 複合書式指定 を文字列に 2 つのオブジェクトの文字列形式を埋め込むには機能します。

    DateTime dateAndTime = new DateTime(2011, 7, 6, 7, 32, 0);
    double temperature = 68.3;
    string result = String.Format("At {0:t} on {0:D}, the temperature was {1:F1} degrees Fahrenheit.",
                                  dateAndTime, temperature);
    Console.WriteLine(result);
    // The example displays the following output:
    //       At 7:32 AM on Wednesday, July 06, 2011, the temperature was 68.3 degrees Fahrenheit.      
    

文字列内の各文字は、Unicode コード ポイントまたは Unicode 文字の序数 (数値) の値ともいいます Unicode スカラー値によって定義されます。 各コード ポイントは utf-16 エンコーディングを使用してエンコードされ、エンコーディングの各要素の数値がによって表される、 Char オブジェクトです。

System_CAPS_noteメモ

注意してください、 String utf-16 コード単位のシーケンシャル コレクションのインスタンスを構成、作成することは、 String 整形式の Unicode 文字列ではないオブジェクト。 たとえば、対応する上位サロゲートせず、下位のサロゲートを含む文字列を作成することはできます。 エンコードとデコード内のオブジェクトのメソッドなど、いくつかのメソッド、 System.Text 名前空間がチェックを実行して文字列が整形式であることを確認 String クラスのメンバーは、文字列が整形式である保証されません。

単一の Char オブジェクトは通常、1 つを表すコード ポイント、つまりの数値、 Char コード ポイントに等しい。 たとえば、コード ポイントの文字"a"、U + 0061 します。 ただし、コード ポイントがエンコードされた複数の要素を必要があります (複数の Char オブジェクト)。 Unicode 標準を複数の対応する文字の 2 種類の定義 Char オブジェクト: graphemes、および Unicode の補助平面内の文字に対応する Unicode 補助コード ポイント。

  • 書記素は、1 つまたは複数の組み合わせ文字の後に、基本文字で表されます。 たとえば、ä 文字が a で表されます Char コード ポイントが U + + a 0061 オブジェクト Char コード ポイントが u+0308 オブジェクトです。 この文字は、1 つで定義することも Char U + 00E4 のコード ポイントを持つオブジェクトです。 次の例に示すようにが、通常の序数比較ではこれら 2 つの表現が等しいか、等しいかどうかのカルチャに依存した比較を示します。 ただし、2 つの文字列が正規化され場合、序数に基づく比較もあることを示しますと同じです。 (文字列の正規化の詳細については、次を参照してください、 正規化 セクションです。)。

    using System;
    using System.Globalization;
    using System.IO;
    
    public class Example
    {
       public static void Main()
       {
          StreamWriter sw = new StreamWriter(@".\graphemes.txt");
          string grapheme = "\u0061\u0308";
          sw.WriteLine(grapheme);
    
          string singleChar = "\u00e4";
          sw.WriteLine(singleChar);
    
          sw.WriteLine("{0} = {1} (Culture-sensitive): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.CurrentCulture));
          sw.WriteLine("{0} = {1} (Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.Ordinal));
          sw.WriteLine("{0} = {1} (Normalized Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme.Normalize(), 
                                     singleChar.Normalize(), 
                                     StringComparison.Ordinal));
          sw.Close(); 
       }
    }
    // The example produces the following output:
    //       ä
    //       ä
    //       ä = ä (Culture-sensitive): True
    //       ä = ä (Ordinal): False
    //       ä = ä (Normalized Ordinal): True
    
  • 補助コード ポイント (サロゲート ペア) がによって表される Unicode、 Char コード ポイントが上位サロゲート オブジェクトが続く、 Char コード ポイントが下位サロゲートであるオブジェクト。 高サロゲート範囲が u+d800 から U+DBFF のコード単位です。 低サロゲート範囲が u+dc00 から U+DFFF のコード単位です。 サロゲート ペアが使用され、16 の Unicode 補助平面内の文字を表します。 次の例は、サロゲート文字を作成しに渡します、 Char.IsSurrogatePair(Char, Char) サロゲート ペアであるかどうかを決定する方法です。

    using System;
    
    public class Example
    {
       public static void Main()
       {
          string surrogate = "\uD800\uDC03";
          for (int ctr = 0; ctr < surrogate.Length; ctr++) 
             Console.Write("U+{0:X2} ", Convert.ToUInt16(surrogate[ctr]));
    
          Console.WriteLine();
          Console.WriteLine("   Is Surrogate Pair: {0}", 
                            Char.IsSurrogatePair(surrogate[0], surrogate[1]));
       }
    }
    // The example displays the following output:
    //       U+D800 U+DC03
    //          Is Surrogate Pair: True
    

文字列内の文字に対応する、utf-16 でエンコードされたコード単位で表される Char 値。

文字列内の各文字が、関連付けられている Unicode 文字のカテゴリ、によって .NET Framework で表される、 UnicodeCategory 列挙します。 文字またはサロゲート ペアのカテゴリを呼び出すことによって決まりますが、 CharUnicodeInfo.GetUnicodeCategory メソッドです。

.NET Framework では、独自の文字と、対応するカテゴリのテーブル、さまざまなプラットフォームで実行されている .NET Framework のバージョンが同じ文字のカテゴリの情報を返すことにより、これを保持します。 次の表には、.NET Framework のバージョンと、文字のカテゴリを基になる Unicode 規格のバージョンが一覧表示します。

.NET Framework のバージョン

Unicode 規格のバージョン

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

.NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.2

The Unicode Standard, Version 6.3.0

.NET Framework 4.6

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.2

The Unicode Standard, Version 8.0.0

さらに、.NET Framework は、文字列比較をサポートし、Unicode 標準に基づく並べ替え。 .NET Framework のバージョンで、 .NET Framework 4, 、.NET Framework は、文字列データのテーブルを保持します。 以降で .NET Framework のバージョンの場合は true。 これはまた、 .NET Framework 4.5 Windows 7 で実行されています。 以降で、 .NET Framework 4.5 Window 8 および Windows オペレーティング システムの以降のバージョンで実行されているランタイムのデリゲートの文字列比較と並べ替え、オペレーティング システムを操作します。 次の表には、.NET Framework のバージョンとの比較と並べ替えの基に文字を Unicode 標準のバージョンが一覧表示します。

.NET Framework のバージョン

Unicode 規格のバージョン

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

.NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5 Windows 7 以降

The Unicode Standard, Version 5.0.0

.NET Framework 4.5 および Windows 8 およびそれ以降の Windows オペレーティング システムでそれ以降

The Unicode Standard, Version 6.3.0

.NET Framework で、 String オブジェクトは、文字列の長さの一部としてカウントする埋め込みの null 文字を含めることができます。 ただし、C や C++ などの一部の言語で null 文字が文字列の末尾を示すです。 文字列の一部とは見なされませんが、文字列の長さの一部としてはカウントされません。 つまり、文字列の C および C++ のプログラマや C または C++ で記述されたライブラリを使用する次の一般的な前提条件に適用すると、必ずしも無効である String オブジェクト。

  • によって返される値、 strlen または wcslen 関数が必ずしも等しくない String.Lengthします。

  • によって作成される文字列、 strcpy_s または wcscpy_s 関数が必ずしもによって作成された文字列と同じでは、 String.Copy メソッドです。

そのネイティブ C および C++ コードをインスタンス化することを確認する必要があります String オブジェクト、および渡されるコード String プラットフォームを使用してオブジェクトの起動、しないわけでは、埋め込まれた null 文字が文字列の末尾をマークします。

文字列に埋め込まれた null 文字は文字列が並べ替えられます (またはと比較して)、および文字列を検索すると異なる方法でも扱われます。 インバリアント カルチャを使用する比較を含む 2 つの文字列のカルチャに依存した比較を実行するときに、null 文字は無視されます。 序数に基づくまたは小文字を区別しない序数に基づく比較に対してのみと見なされます。 これに対して、埋め込まれた null 文字は常と見なされますなどの方法で文字列を検索するときに Contains, 、StartsWith, 、および IndexOfです。

インデックスの位置とは、 Char 内のオブジェクト (Unicode 文字ではない)、 Stringです。 インデックスとは、負でない、0 から始まる番号を文字列で、インデックス位置 0 は、最初の位置から開始します。 いくつかの検索メソッドのなど IndexOfLastIndexOf, 文字のインデックスを返す、または、文字列インスタンスで文字列を指定します。

Chars プロパティでは、個別にアクセスできます。 Char 文字列内のインデックス位置でのオブジェクト。 Chars プロパティは、既定のプロパティ (Visual Basic の場合) またはインデクサー (C# の場合)、個人がアクセスできる Char 、次のようなコードを使用して、文字列内のオブジェクト。 このコードは、空白文字または文字列が含まれる文字数を判断するための文字列の区切り文字を探します。

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "This string consists of a single short sentence.";
      int nWords = 0;

      s1 = s1.Trim();      
      for (int ctr = 0; ctr < s1.Length; ctr++) {
         if (Char.IsPunctuation(s1[ctr]) | Char.IsWhiteSpace(s1[ctr]))
            nWords++;              
      }
      Console.WriteLine("The sentence\n   {0}\nhas {1} words.",
                        s1, nWords);                                                                     
   }
}
// The example displays the following output:
//       The sentence
//          This string consists of a single short sentence.
//       has 8 words.

String クラスが実装する、 IEnumerable インターフェイスも繰り返し処理したり、 Char を使用して文字列内のオブジェクト、 foreach 次の例のように、コンス トラクターです。

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "This string consists of a single short sentence.";
      int nWords = 0;

      s1 = s1.Trim();      
      foreach (var ch in s1) {
         if (Char.IsPunctuation(ch) | Char.IsWhiteSpace(ch))
            nWords++;              
      }
      Console.WriteLine("The sentence\n   {0}\nhas {1} words.",
                        s1, nWords);                                                                     
   }
}
// The example displays the following output:
//       The sentence
//          This string consists of a single short sentence.
//       has 8 words.

文字は、Unicode でエンコードされた 1 つ以上にするために、連続したインデックス値が連続するいくつかの Unicode 文字に対応していません Char オブジェクトです。 具体的には、文字列は、テキスト文字の後に 1 つまたは複数の組み合わせの文字またはサロゲート ペアで形成される複数の文字の単位を含むことがあります。 代わりに Unicode 文字を使用する Char オブジェクトを使用して、 System.Globalization.StringInfoTextElementEnumerator クラスです。 次の例を使用するコードの違いを示しています。 Char オブジェクトと Unicode 文字を使用するコードです。 文字または文の各単語内のテキスト要素の数を比較します。 文字列には、基本文字が続く組み合わせ文字の 2 つのシーケンスが含まれています。

using System;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // First sentence of The Mystery of the Yellow Room, by Leroux.
      string opening = "Ce n'est pas sans une certaine émotion que "+
                       "je commence à raconter ici les aventures " +
                       "extraordinaires de Joseph Rouletabille."; 
      // Character counters.
      int nChars = 0;
      // Objects to store word count.
      List<int> chars = new List<int>();
      List<int> elements = new List<int>();

      foreach (var ch in opening) {
         // Skip the ' character.
         if (ch == '\u0027') continue;

         if (Char.IsWhiteSpace(ch) | (Char.IsPunctuation(ch))) {
            chars.Add(nChars);
            nChars = 0;
         }
         else {
            nChars++;
         }
      }

      TextElementEnumerator te = StringInfo.GetTextElementEnumerator(opening);
      while (te.MoveNext()) {
         string s = te.GetTextElement();   
         // Skip the ' character.
         if (s == "\u0027") continue;
         if ( String.IsNullOrEmpty(s.Trim()) | (s.Length == 1 && Char.IsPunctuation(Convert.ToChar(s)))) {
            elements.Add(nChars);         
            nChars = 0;
         }
         else {
            nChars++;
         }
      }

      // Display character counts.
      Console.WriteLine("{0,6} {1,20} {2,20}",
                        "Word #", "Char Objects", "Characters"); 
      for (int ctr = 0; ctr < chars.Count; ctr++) 
         Console.WriteLine("{0,6} {1,20} {2,20}",
                           ctr, chars[ctr], elements[ctr]); 
   }
}
// The example displays the following output:
//       Word #         Char Objects           Characters
//            0                    2                    2
//            1                    4                    4
//            2                    3                    3
//            3                    4                    4
//            4                    3                    3
//            5                    8                    8
//            6                    8                    7
//            7                    3                    3
//            8                    2                    2
//            9                    8                    8
//           10                    2                    1
//           11                    8                    8
//           12                    3                    3
//           13                    3                    3
//           14                    9                    9
//           15                   15                   15
//           16                    2                    2
//           17                    6                    6
//           18                   12                   12

この例が連携するテキスト要素を使用して、 StringInfo.GetTextElementEnumerator メソッドおよび TextElementEnumerator 文字列内のすべてのテキスト要素を列挙するクラス。 呼び出すことによってテキストの各要素の開始インデックスを含む配列を取得することも、 StringInfo.ParseCombiningCharacters メソッドです。

個人ではなくテキスト単位の使用の詳細については Char の値を参照してください、 StringInfo クラスです。

宣言されているが、値が割り当てられていない文字列が nullです。 その文字列でメソッドを呼び出すしようとするとスロー、 NullReferenceExceptionです。 Null 文字列とは異なる値が文字列である空の文字列""または String.Emptyです。 場合によっては、メソッドの呼び出しで引数として文字列を null または空の文字列のいずれかを渡すと、例外がスローされます。 Null 文字列を渡すなど、 Int32.Parse メソッドでのスロー、 ArgumentNullException, 、スロー、空の文字列を渡すこと、 FormatExceptionです。 それ以外の場合に、メソッド引数は文字列を null または空の文字列のいずれかを指定できます。 指定する場合など、 IFormattable と同じ null 文字列と空の文字列の両方で一般的な ("G") 書式指定子とするクラスの実装、します。

String クラスには、文字列があるかどうかをテストするための次の 2 つの便利なメソッドが含まれています。 null または空。

  • IsNullOrEmpty, 、文字列がいずれかでかどうかを示します null に等しいまたは String.Emptyです。 このメソッドでは、次のようなコードを使用する必要があります。

    if (str == null || str.Equals(String.Empty))
    
  • IsNullOrWhiteSpace, 、文字列とは、あるかどうかを示します null, 、equals String.Empty, 、または空白文字のみで構成されています。 このメソッドでは、次のようなコードを使用する必要があります。

    if (str == null || str.Equals(String.Empty) || str.Trim().Equals(String.Empty))
    

次の例では、 IsNullOrEmpty メソッドで、 IFormattable.ToString 、カスタムの実装 Temperature クラスです。 このメソッドは、"G"、"C"、"F"および"K"書式指定文字列をサポートします。 空の文字列または形式の文字列の値を持つ場合は、 null は、メソッドにその値は"G"書式指定文字列に変更します。

public string ToString(string format, IFormatProvider provider) 
{
   if (String.IsNullOrEmpty(format)) format = "G";  
   if (provider == null) provider = CultureInfo.CurrentCulture;

   switch (format.ToUpperInvariant())
   {
      // Return degrees in Celsius.    
      case "G":
      case "C":
         return temp.ToString("F2", provider) + "°C";
      // Return degrees in Fahrenheit.
      case "F": 
         return (temp * 9 / 5 + 32).ToString("F2", provider) + "°F";
      // Return degrees in Kelvin.
      case "K":   
         return (temp + 273.15).ToString();
      default:
         throw new FormatException(
               String.Format("The {0} format string is not supported.", 
                             format));
   }                                   
}

A String オブジェクトは変更できないと呼ばれる (読み取り専用)、作成した後、その値を変更できないためです。 表示を変更する方法、 String オブジェクトは実際には、新しい返す String 変更を格納しているオブジェクト。

文字列は変更できないために、追加または削除する 1 つの文字列が、大幅なパフォーマンスの低下を完全に見えるものを実行する文字列操作ルーチンが繰り返されます。 たとえば、次のコードは、範囲 0x0001 に 0x052F に 1000年文字を含む文字列を作成するのに乱数ジェネレーターを使用します。 コードは、文字列の連結を使用して、新しい文字をという名前の既存の文字列に追加するように見えますが str, 、実際には、新しいを作成 String 各連結操作のオブジェクト。

using System;
using System.IO;
using System.Text;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();

      string str = String.Empty;
      StreamWriter sw = new StreamWriter(@".\StringFile.txt", 
                           false, Encoding.Unicode);

      for (int ctr = 0; ctr <= 1000; ctr++) {
         str += Convert.ToChar(rnd.Next(1, 0x0530)); 
         if (str.Length % 60 == 0)
            str += Environment.NewLine;          
      }                    
      sw.Write(str);
      sw.Close();
   }
}

使用することができます、 StringBuilder クラスの代わりに、 String クラスの複数の変更を文字列の値を操作します。 インスタンスとは異なり、 String クラス、 StringBuilder オブジェクトは変更可能な;、操作が 1 つの文字列に対して実行される連結、追加、または文字列から部分文字列を削除するとします。 値の変更が完了したら、 StringBuilder オブジェクトを呼び出すことができます、 StringBuilder.ToString 文字列に変換します。 次の例が置き換えられます、 String と 0x052F を 0x0001 ~ 範囲内で 1000年のランダムな文字を連結する前の例で使用される、 StringBuilder オブジェクトです。

using System;
using System.IO;
using System.Text;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();
      StringBuilder sb = new StringBuilder();
      StreamWriter sw = new StreamWriter(@".\StringFile.txt", 
                                         false, Encoding.Unicode);

      for (int ctr = 0; ctr <= 1000; ctr++) {
         sb.Append(Convert.ToChar(rnd.Next(1, 0x0530))); 
         if (sb.Length % 60 == 0)
            sb.AppendLine();          
      }                    
      sw.Write(sb.ToString());
      sw.Close();
   }
}

メンバー、 String クラスでは、序数に基づくまたはカルチャのいずれかの (言語) 操作を実行で、 String オブジェクトです。 序数に基づく操作の対象とそれぞれの数値に対して Char オブジェクトです。 値に対してそのカルチャに依存した操作、 Stringオブジェクト、およびはカルチャに固有の大文字小文字の区別、並べ替え、書式設定、および解析規則を考慮します。 カルチャに依存する操作は、明示的に宣言されたカルチャまたは現在のカルチャのコンテキストで実行します。 同じ文字列で実行されるときに、2 種類の操作は非常に異なる結果を生成できます。

.NET Framework では、インバリアント カルチャを使用してカルチャに依存しない言語的な文字列操作もがサポートしています (CultureInfo.InvariantCulture)、地域に依存しない、英語のカルチャ設定に基づいた疎です。 その他とは異なり System.Globalization.CultureInfo 設定、インバリアント カルチャの設定および .NET Framework のバージョン間で、システムにシステムからの単一のコンピューター上の一貫性を保持することが保証されます。 インバリアント カルチャでは、すべてのカルチャの文字列比較の安定性に確実に黒いボックスとして表示されると順序を指定できます。

System_CAPS_security セキュリティ メモ

場合は、アプリケーションがファイル名などのシンボリック識別子に関するセキュリティ上の決定は、または名前付きパイプ、または XML ファイル内のテキスト ベースのデータなどの永続化されたデータは、操作はカルチャに依存した比較ではなく序数に基づく比較を使用する必要があります。 これは、序数に基づく比較が比較対象の文字のバイナリ値にのみ異なりますが、カルチャに依存した比較では、カルチャによって異なる結果を実際には、yield ためです。

System_CAPS_important重要

文字列操作を実行するほとんどのメソッドを型のパラメーターを持つオーバー ロードを含める StringComparison, 、メソッドが序数に基づくまたはカルチャに依存した操作を実行するかどうかを指定できます。 一般に、このオーバー ロードを呼び出し、クリア、メソッドの意図を呼び出す必要があります。 ベスト プラクティスと文字列の序数とカルチャに依存した操作の使用に関するガイダンスは、次を参照してください。 .NET Framework で文字列を使用するためのベスト プラクティスします。

操作を 大文字と小文字, 、解析および書式設定, 、比較と並べ替え, 、および 等価性テスト 序数またはカルチャを指定できます。 次のセクションでは、操作の各カテゴリについて説明します。

System_CAPS_tipヒント

常にオフ呼び出し、メソッドの意図は、メソッドのオーバー ロードを呼び出す必要があります。 呼び出す代わりになど、 Compare(String, String) メソッドを現在のカルチャの規則を使用して 2 つの文字列のカルチャに依存した比較を実行する呼び出す必要があります、 Compare(String, String, StringComparison) の値を持つメソッド StringComparison.CurrentCulturecomparisonType 引数。 詳細については、「.NET Framework で文字列を使用するためのベスト プラクティス」を参照してください。

大文字小文字の規則を Unicode 文字の大文字と小文字を変更する方法を決定します。たとえばから小文字を大文字にします。 多くの場合、大文字と小文字操作は、文字列比較の前に実行されます。 たとえば、別の文字列の大文字を取り出せるようには、文字列を大文字に変換可能性があります。 呼び出すことによって小文字文字列内の文字に変換することができます、 ToLower または ToLowerInvariant メソッドはそれらを呼び出すことで大文字に変換で変換できる、 ToUpper または ToUpperInvariant メソッドです。 さらに、使用、 TextInfo.ToTitleCase 文字列をタイトル ケースに変換します。

大文字と小文字の操作は、現在のカルチャ、指定したカルチャまたはインバリアント カルチャの規則に基づくことができます。 大文字小文字マップは、使用されるカルチャによって変わる、ために、大文字と小文字の操作の結果がカルチャによって異なることができます。 大文字と小文字の実際の違いは、次の 3 種類のことです。

  • LATIN CAPITAL LETTER I の大文字のマッピングの違い (u+0049)、LATIN SMALL 文字 I (u+0069) LATIN CAPITAL LETTER I (u+0130) 上のドットと LATIN SMALL 文字ドットなし I (U + 0131)。 TR-TR (トルコ語 (トルコ)) と (アゼルバイジャン、ラテン文字) の az-Latn-AZ カルチャでは、tr、az、および az Latn のニュートラル カルチャで、ラテン語の大文字、I の小文字表現ラテン小さな文字ドットなし I とはラテン語小さな文字 I の大文字表現が LATIN CAPITAL LETTER I にドットを超えています。 その他のすべてのカルチャでは、インバリアント カルチャ、LATIN SMALL 文字 I と I では大文字と小文字の対応 LATIN CAPITAL LETTER などです。

    次の例は、ファイル システム アクセスを防ぐために失敗する場合、カルチャの大文字と小文字の比較に利用することに設計された文字列の比較方法を示します。 (インバリアント カルチャのケース表記規則が使用されています。)

    using System;
    using System.Globalization;
    using System.Threading;
    
    public class Example
    {
       const string disallowed = "file";
    
       public static void Main()
       {
          IsAccessAllowed(@"FILE:\\\c:\users\user001\documents\FinancialInfo.txt");
       }
    
       private static void IsAccessAllowed(String resource)
       {
          CultureInfo[] cultures = { CultureInfo.CreateSpecificCulture("en-US"),
                                     CultureInfo.CreateSpecificCulture("tr-TR") };
          String scheme = null;
          int index = resource.IndexOfAny( new Char[] { '\\', '/' } );
          if (index > 0) 
             scheme = resource.Substring(0, index - 1);
    
          // Change the current culture and perform the comparison.
          foreach (var culture in cultures) {
             Thread.CurrentThread.CurrentCulture = culture;
             Console.WriteLine("Culture: {0}", CultureInfo.CurrentCulture.DisplayName);
             Console.WriteLine(resource);
             Console.WriteLine("Access allowed: {0}", 
                               ! String.Equals(disallowed, scheme, StringComparison.CurrentCultureIgnoreCase));      
             Console.WriteLine();
          }   
       }
    }
    // The example displays the following output:
    //       Culture: English (United States)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: False
    //       
    //       Culture: Turkish (Turkey)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: True
    
  • インバリアント カルチャとその他のすべてのカルチャの大文字小文字マップの違いです。 このような場合、インバリアント カルチャの大文字小文字の規則を使用して、文字を大文字または小文字を変更すると、同じ文字を返します。 その他のすべてのカルチャの場合は、別の文字を返します。 影響を受ける文字の一部は、次の表に一覧表示されます。

    文字

    変更された場合

    戻り値

    ミクロン記号 (+ U 00B5)

    大文字

    ギリシャ語の大文字 MU (U +-39 C)

    LATIN CAPITAL LETTER はドット付き (U+0130) の上

    小文字

    LATIN SMALL LETTER は (U+0069)

    ドットなしの LATIN SMALL LETTER は (U + 0131)

    大文字

    文字の英数字の大文字 (U+0049)

    LATIN SMALL LETTER 長い S (U + 017F)

    大文字

    LATIN CAPITAL LETTER S (U + 0053)

    キャロン付き文字 Z で LATIN CAPITAL LETTER D (U + 01C 5)

    小文字

    キャロン付き LATIN SMALL LETTER DZ (U + 01C 6)

    結合ギリシャ YPOGEGRAMMENI (U + 0345)

    大文字

    ギリシャ語の大文字 IOTA (U + 0399)

  • ASCII 文字の範囲内の 2 文字の小文字の混在したペアの大文字小文字マップの違いです。 ほとんどのカルチャでは、2 文字の小文字の混在した組み合わせは、等価 2 文字の大文字または小文字の組み合わせと同じです。 これは、いずれの場合、digraph を比較するためには次のカルチャでは、次の 2 文字のペアの場合は true。 できません。

    • "lJ"と"nJ"HR-HR (クロアチア語 (クロアチア)) のカルチャ。

    • "cH"の CS-CZ (チェコ語 (チェコ共和国)) および SK-SK (スロバキア語 (スロバキア)) のカルチャ。

    • "aA"da DK (デンマーク語 (デンマーク)) のカルチャ。

    • "cS"、"dZ"、"dZS"、"nY"、"sZ"、"tY"および"zS"HU-HU (ハンガリー語 (ハンガリー)) のカルチャ。

    • "cH"と"lL"es-es_tradnl (スペイン語 (スペイン、トラディショナル ソート)) のカルチャ。

    • "cH"、"gI"、"kH"、"nG""nH"、"pH"、"qU"、"tH"と"tR"vi VN (ベトナム語 (ベトナム)) のカルチャでします。

    ただし、これらのペアは固定文字列または識別子が一般的ではないためこれらのペアのカルチャに依存した比較が、問題を作成するような状況が発生するのにいつもはありません。

次の例では、大文字小文字の規則で文字列を大文字に変換するときに、カルチャ間の違いの一部を示します。

using System;
using System.Globalization;
using System.IO;

public class Example
{
   public static void Main()
   {
      StreamWriter sw = new StreamWriter(@".\case.txt");   
      string[] words = { "file", "sıfır", "Dženana" };
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 new CultureInfo("en-US"),  
                                 new CultureInfo("tr-TR") };

      foreach (var word in words) {
         sw.WriteLine("{0}:", word);
         foreach (var culture in cultures) {
            string name = String.IsNullOrEmpty(culture.Name) ? 
                                 "Invariant" : culture.Name;
            string upperWord = word.ToUpper(culture);
            sw.WriteLine("   {0,10}: {1,7} {2, 38}", name, 
                         upperWord, ShowHexValue(upperWord));

         }
         sw.WriteLine();  
      }
      sw.Close();
   }

   private static string ShowHexValue(string s)
   {
      string retval = null;
      foreach (var ch in s) {
         byte[] bytes = BitConverter.GetBytes(ch);
         retval += String.Format("{0:X2} {1:X2} ", bytes[1], bytes[0]);     
      }
      return retval;
   } 
}
// The example displays the following output:
//    file:
//        Invariant:    FILE               00 46 00 49 00 4C 00 45 
//            en-US:    FILE               00 46 00 49 00 4C 00 45 
//            tr-TR:    FİLE               00 46 01 30 00 4C 00 45 
//    
//    sıfır:
//        Invariant:   SıFıR         00 53 01 31 00 46 01 31 00 52 
//            en-US:   SIFIR         00 53 00 49 00 46 00 49 00 52 
//            tr-TR:   SIFIR         00 53 00 49 00 46 00 49 00 52 
//    
//    Dženana:
//        Invariant:  DžENANA   01 C5 00 45 00 4E 00 41 00 4E 00 41 
//            en-US:  DŽENANA   01 C4 00 45 00 4E 00 41 00 4E 00 41 
//            tr-TR:  DŽENANA   01 C4 00 45 00 4E 00 41 00 4E 00 41 

書式設定および解析は、逆の操作です。 書式指定規則は、解析規則など、日付と時刻の値を文字列形式に変換する方法を決定する一方、日付と時刻や数値などの値をその文字列形式に変換する方法を決定します。 書式設定と解析規則の両方には、文化的習慣に依存します。 次の例では、カルチャ固有の日付文字列を解釈するときに生じる可能性のあるあいまいさを示します。 日付文字列の生成に使用されたカルチャの規則を知ることがなく、2011 年 1 月 3 日または 2011 年 3 月 1 日の 03/01/2011年、2011 年 3 月 1 日および 01/03/2011年を表すかどうかを知ることはできません。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      DateTime date = new DateTime(2011, 3, 1);
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 new CultureInfo("en-US"), 
                                 new CultureInfo("fr-FR") };

      foreach (var culture in cultures)
         Console.WriteLine("{0,-12} {1}", String.IsNullOrEmpty(culture.Name) ?
                           "Invariant" : culture.Name, 
                           date.ToString("d", culture));                                    
   }
}
// The example displays the following output:
//       Invariant    03/01/2011
//       en-US        3/1/2011
//       fr-FR        01/03/2011

同様に、次の例に示すように、1 つの文字列は解析操作での規則を使用するカルチャごとに異なる日付を生成できます。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString = "07/10/2011";
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 CultureInfo.CreateSpecificCulture("en-GB"), 
                                 CultureInfo.CreateSpecificCulture("en-US") };
      Console.WriteLine("{0,-12} {1,10} {2,8} {3,8}\n", "Date String", "Culture", 
                                                 "Month", "Day");
      foreach (var culture in cultures) {
         DateTime date = DateTime.Parse(dateString, culture);
         Console.WriteLine("{0,-12} {1,10} {2,8} {3,8}", dateString, 
                           String.IsNullOrEmpty(culture.Name) ?
                           "Invariant" : culture.Name, 
                           date.Month, date.Day);
      }                      
   }
}
// The example displays the following output:
//       Date String     Culture    Month      Day
//       
//       07/10/2011    Invariant        7       10
//       07/10/2011        en-GB       10        7
//       07/10/2011        en-US        7       10

文字列の比較および並べ替え規則には、カルチャが異なります。 たとえば、並べ替え順序は、表音または文字の視覚的表現に基づいて可能性があります。 東アジア圏の言語では、文字が表意文字の画数と部首によって並べ替えられます。 また、並べ替えは、言語やカルチャで使用されているアルファベットの順序によっても異なります。 たとえば、デンマーク語の文字 "Æ" は、アルファベットでは "Z" の後に位置します。 さらに、大文字または小文字を区別しない、比較を実行でき、場合によっては大文字小文字の規則もカルチャによって異なます。 序数に基づく比較は、その一方で、文字列を比較すると、文字列の並べ替えで個々 の文字の Unicode コード ポイントを使用します。

並べ替えの規則は、Unicode 文字のアルファベット順と 2 つの文字列を相互に比較を決定します。 たとえば、 String.Compare(String, String, StringComparison) メソッドに基づく 2 つの文字列を比較し、 StringComparison パラメーター。 パラメーター値が場合 StringComparison.CurrentCulture, 、パラメーター値の場合、メソッドは、現在のカルチャの規則を使用する言語的な比較を実行 StringComparison.Ordinal, 、メソッドは、序数に基づく比較を実行します。 そのため、例を次に、現在のカルチャが米国の場合英語、最初の呼び出し、 String.Compare(String, String, StringComparison) (カルチャに依存した比較を使用して) メソッドが"A","a"未満と見なしますが、(序数に基づく比較を使用)、同じメソッドの 2 番目の呼び出しと見なします"a""A"より大きい。

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
      Console.WriteLine(String.Compare("A", "a", StringComparison.CurrentCulture));
      Console.WriteLine(String.Compare("A", "a", StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       1
//       -32

.NET Framework には、単語、文字列、および序数の並べ替え規則がサポートされています。

  • 単語での並べ替えでは、英数字以外の特定の Unicode 文字には特別な重みが割り当てられる、カルチャに依存した文字列の比較が行われます。 たとえば、ハイフン (-) は、"coop"と"co-op"、並べ替え済みリストで互いの横に表示されるように、それに割り当てられている重みは非常に小さい場合があります。 一覧については、 String単語の並べ替え規則を使用して 2 つの文字列を比較するメソッドを参照してください、 カテゴリ別の文字列操作 セクションです。

  • 文字列の並べ替えはカルチャに依存した比較も実行します。 特殊なケースがないと、英数字以外のすべてのシンボルがすべての英数字の Unicode 文字の前に記述する点を除いて、単語の並べ替えに似ています。 2 つの文字列の比較は、文字列の並べ替え規則を使用して呼び出すことによって、 CompareInfo.Compare を持つメソッド オーバー ロード、 options であるパラメーターの値を指定した CompareOptions.StringSortします。 これは、.NET Framework には文字列の並べ替え規則を使用して 2 つの文字列を比較する唯一の方法であることに注意してください。

  • 序数の並べ替えでは、文字列内の各 Char オブジェクトの数値に基づいて文字列を比較します。 序数に基づく比較は、文字の大文字と小文字のバージョンがあるコード ポイントが異なるため自動的に大文字小文字を区別します。 ただし、ケースが重要ではない場合は、ケースを区別しない序数に基づく比較を指定できます。 これは、インバリアント カルチャを使用して、結果に序数に基づく比較を実行することで大文字に文字列の変換と同じです。 一覧については、 String 序数の並べ替え規則を使用して 2 つの文字列を比較するメソッドを参照してください、 カテゴリ別の文字列操作 セクションです。

カルチャに依存した比較は、明示的または暗黙的に使用する比較、 CultureInfo インバリアント カルチャで指定されているなど、オブジェクト、 CultureInfo.InvariantCulture プロパティです。 暗黙のカルチャは、現在のカルチャで指定されている、 Thread.CurrentCultureCultureInfo.CurrentCulture プロパティです。 アルファベットの文字の並べ替え順序ではかなりのばらつきがある (含まれる文字は、これを Char.IsLetter プロパティを返します。 true) カルチャにします。 指定することによって、特定のカルチャの規則を使用するカルチャに依存した比較を指定する、 CultureInfo などオブジェクトの文字列比較メソッドを Compare(String, String, CultureInfo, CompareOptions)します。 指定することによって、現在のカルチャの規則を使用するカルチャに依存した比較を指定することができます StringComparison.CurrentCulture, 、StringComparison.CurrentCultureIgnoreCase, 、またはすべてのメンバー、 CompareOptions 以外の列挙体 CompareOptions.Ordinal または CompareOptions.OrdinalIgnoreCase の適切なオーバー ロードに、 Compare メソッドです。 カルチャに依存した比較では、一般に序数の比較では、一方を並べ替える場合に適しています。 序数に基づく比較は 2 つの文字列が等しいかどうかを判断するため、一般的に適切な (つまり、id の判別) カルチャに依存した比較では、一方です。

次の例は、カルチャ、および序数の比較の違いを示しています。 次の 3 つの文字列、"Apple"、"Æble"および"AEble"、序数に基づく比較と da DK および EN-US カルチャの規則を使用して評価 (時に既定のカルチャは、これらの各、 Compare メソッドが呼び出されます)。 デンマーク語の言語では、個々 の文字として文字「Æ」を処理し、"Z"の後に、アルファベット順で並べ替えて、ため、文字列"Æble"は"Apple"より大きいです。 ただし、"Æble"はありません"AEble"と同じため"Æble"は"AEble"より大きいも。 EN-US カルチャでは、文字「Æ」が含まれていませんが、"AE"は、"Æble"は、"Apple"よりも"AEble"に等しい少ない理由を説明する同等として扱われます。 序数に基づく比較は、その一方で、"AEble"より大きい値を指定するには、"Æble"と"Æble"より小さい"Apple"を考慮します。

using System;
using System.Globalization;
using System.Threading;

public class CompareStringSample
{
   public static void Main()
   {
      string str1 = "Apple";
      string str2 = "Æble"; 
      string str3 = "AEble";

      // Set the current culture to Danish in Denmark.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
      Console.WriteLine("Current culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, String.Compare(str1, str2));
      Console.WriteLine("Comparison of {0} with {1}: {2}\n", 
                        str2, str3, String.Compare(str2, str3));

      // Set the current culture to English in the U.S.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      Console.WriteLine("Current culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, String.Compare(str1, str2));
      Console.WriteLine("Comparison of {0} with {1}: {2}\n", 
                        str2, str3, String.Compare(str2, str3));

      // Perform an ordinal comparison.
      Console.WriteLine("Ordinal comparison");
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, 
                        String.Compare(str1, str2, StringComparison.Ordinal));
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str2, str3, 
                        String.Compare(str2, str3, StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       Current culture: da-DK
//       Comparison of Apple with Æble: -1
//       Comparison of Æble with AEble: 1
//       
//       Current culture: en-US
//       Comparison of Apple with Æble: 1
//       Comparison of Æble with AEble: 0
//       
//       Ordinal comparison
//       Comparison of Apple with Æble: -133
//       Comparison of Æble with AEble: 133

適切な文字列の並べ替えまたは比較方法を選択するのにには、次の一般的なガイドラインを使用します。

  • オーダーする文字列をユーザーのカルチャに基づいて希望する場合、現在のカルチャの規則に基づいてそのを注文する必要があります。 ユーザーのカルチャが変更された場合の文字列の並べ替え順序はそれに応じて変更もできます。 たとえば、類義語辞典アプリケーションは、ユーザーのカルチャに基づいて単語を常に並べ替える必要があります。

  • 指定して注文を注文する文字列を特定のカルチャの規則に基づいて希望する場合、 CultureInfo 比較メソッドを表すオブジェクト。 たとえば、特定の言語について説明するように設計するアプリケーションで場合、文字列を並べ替えるその言語を話すのカルチャのいずれかの規則に基づいてします。

  • 文字列の順序をカルチャに関係なく、そのままにする場合は、インバリアント カルチャの規則に基づいて順序を並べ替えます。 または序数に基づく比較を使用する必要があります。 たとえば、ファイル、プロセス、ミュー テックスを整理するのには序数の並べ替えを使用して、または名前付きパイプです。

  • (ユーザー名が有効かどうか) などのセキュリティに関する決定を含む比較では、オーバー ロードを呼び出すことで等しいかどうかの序数に基づくテストを常に実行する必要があります、 Equals メソッドです。

System_CAPS_noteメモ

カルチャに依存した並べ替えと文字列の比較で使用されるルール大文字小文字の区別は、.NET Framework のバージョンによって異なります。.NET Framework 4.5 で実行されている、 Windows 8 、Unicode 6.0 標準に準拠しているオペレーティング システム、並べ替え、大文字小文字の区別、正規化、および Unicode 文字の情報です。 その他のオペレーティング システムでは、Unicode 5.0 標準に準拠しています。

単語、文字列、および序数の並べ替え規則に関する詳細については、次を参照してください。、 System.Globalization.CompareOptions トピックです。 各ルールを使用する場合の追加の推奨事項を参照してください .NET Framework で文字列を使用するためのベスト プラクティスします。

通常は、呼び出すことはない文字列などの比較メソッド Compare 文字列の並べ替え順序を決定するには、直接します。 などのメソッドを並べ替えることで、比較メソッドを呼び出す代わりに、 Array.Sort または List<T>.Sortです。 次の例を使用する比較の種類を指定する操作を行いますが、文字列比較メソッドを明示的に呼び出さずに 4 つの異なる並べ替え処理 (単語の並べ替えが現在のカルチャ、インバリアント カルチャを使用して単語の並べ替え、序数の並べ替えおよびインバリアント カルチャを使用して文字列の並べ替えを使用して) を実行します。 並べ替えの種類ごとに、配列内の文字列の一意の順序が生成されることに注意してください。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] strings = { "coop", "co-op", "cooperative", 
                           "co\u00ADoperative", "cœur", "coeur" };

      // Perform a word sort using the current (en-US) culture.
      string[] current = new string[strings.Length]; 
      strings.CopyTo(current, 0); 
      Array.Sort(current, StringComparer.CurrentCulture);

      // Perform a word sort using the invariant culture.
      string[] invariant = new string[strings.Length];
      strings.CopyTo(invariant, 0); 
      Array.Sort(invariant, StringComparer.InvariantCulture);

      // Perform an ordinal sort.
      string[] ordinal = new string[strings.Length];
      strings.CopyTo(ordinal, 0); 
      Array.Sort(ordinal, StringComparer.Ordinal);

      // Perform a string sort using the current culture.
      string[] stringSort = new string[strings.Length];
      strings.CopyTo(stringSort, 0); 
      Array.Sort(stringSort, new SCompare());

      // Display array values
      Console.WriteLine("{0,13} {1,13} {2,15} {3,13} {4,13}\n", 
                        "Original", "Word Sort", "Invariant Word", 
                        "Ordinal Sort", "String Sort");
      for (int ctr = 0; ctr < strings.Length; ctr++)
         Console.WriteLine("{0,13} {1,13} {2,15} {3,13} {4,13}", 
                           strings[ctr], current[ctr], invariant[ctr], 
                           ordinal[ctr], stringSort[ctr] );          
   }
}

// IComparer<String> implementation to perform string sort.
internal class SCompare : IComparer<String>
{
   public int Compare(string x, string y)
   {
      return CultureInfo.CurrentCulture.CompareInfo.Compare(x, y, CompareOptions.StringSort);
   }
}
// The example displays the following output:
//         Original     Word Sort  Invariant Word  Ordinal Sort   String Sort
//    
//             coop          cœur            cœur         co-op         co-op
//            co-op         coeur           coeur         coeur          cœur
//      cooperative          coop            coop          coop         coeur
//     co­operative         co-op           co-op   cooperative          coop
//             cœur   cooperative     cooperative  co­operative   cooperative
//            coeur  co­operative    co­operative          cœur  co­operative
System_CAPS_tipヒント

内部的には、.net Framework では、並べ替えキーを使用して、culturallysensitive 文字列比較をサポートします。 文字列内の各文字には、アルファベット順、大文字と小文字の区別、発音の区別など、さまざまなカテゴリの並べ替えウェイトが指定されます。 によって表される並べ替えキー、 SortKey クラスで、特定の文字列をこれらの規則のリポジトリを提供します。 アプリでは、多数の検索や並べ替え文字列の同じセットの操作を実行する場合は、生成するために使用するすべての文字列の並べ替えキーを格納することによって、パフォーマンスを向上できます。 並べ替えまたは比較操作が必要な場合は、文字列ではなく並べ替えキーを使用します。 詳細については、SortKey クラスを参照してください。

文字列比較の規則を指定しない場合などのメソッドを並べ替え Array.Sort(Array) 文字列にカルチャに依存し、大文字小文字を区別する並べ替えを実行します。 次の例は、現在のカルチャを変更すると、並べ替えられた文字列配列内の順序にどのように影響する方法を示しています。 3 つの文字列の配列を作成します。 最初に、System.Threading.Thread.CurrentThread.CurrentCulture プロパティを en-US に設定し、Array.Sort(Array) メソッドを呼び出します。 これよって、英語 (米国) カルチャの並べ替え規則に基づく並べ替え順序が適用されます。 次に、System.Threading.Thread.CurrentThread.CurrentCulture プロパティを da-DK に設定し、再度 Array.Sort メソッドを呼び出します。 適用される並べ替え順序が en-US の並べ替え順序と異なる点に注意してください。これは、デンマーク語 (デンマーク) の並べ替え規則が使用されるためです。

using System;
using System.Globalization;
using System.Threading;

public class ArraySort 
{
   public static void Main(String[] args) 
   {
      // Create and initialize a new array to store the strings.
      string[] stringArray = { "Apple", "Æble", "Zebra"};

      // Display the values of the array.
      Console.WriteLine( "The original string array:");
      PrintIndexAndValues(stringArray);

      // Set the CurrentCulture to "en-US".
      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      // Sort the values of the array.
      Array.Sort(stringArray);

      // Display the values of the array.
      Console.WriteLine("After sorting for the culture \"en-US\":");
      PrintIndexAndValues(stringArray); 

      // Set the CurrentCulture to "da-DK".
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
      // Sort the values of the Array.
      Array.Sort(stringArray);

      // Display the values of the array.
      Console.WriteLine("After sorting for the culture \"da-DK\":");
      PrintIndexAndValues(stringArray); 
   }
   public static void PrintIndexAndValues(string[] myArray)  
   {
      for (int i = myArray.GetLowerBound(0); i <= 
            myArray.GetUpperBound(0); i++ )
         Console.WriteLine("[{0}]: {1}", i, myArray[i]);
      Console.WriteLine();      
   }
}
// The example displays the following output:
//       The original string array:
//       [0]: Apple
//       [1]: Æble
//       [2]: Zebra
//       
//       After sorting for the "en-US" culture:
//       [0]: Æble
//       [1]: Apple
//       [2]: Zebra
//       
//       After sorting for the culture "da-DK":
//       [0]: Apple
//       [1]: Zebra
//       [2]: Æble
System_CAPS_warning警告

文字列を比較する主な目的を呼び出す必要がありますが等しいかどうかを判断する場合、 String.Equals メソッドです。 通常は、使用する必要があります Equals 序数に基づく比較を実行します。 String.Compare メソッドが、主に、文字列の並べ替えを目的としています。

などの文字列検索メソッド、 String.StartsWithString.IndexOf, 、またカルチャまたは序数の文字列比較を実行します。 次の例では、序数に基づくとカルチャに依存した比較を使用して違い、 IndexOf メソッドです。 現在のカルチャが英語 (米国) をカルチャに依存した検索では、"oe"合字の「œ」に一致する部分文字列が考慮されます。 検索が同等としてはソフト ハイフンを扱うにソフト ハイフン (U + 00AD) は、ゼロ幅の文字であるため Empty 文字列の先頭に一致が見つかったとします。 序数に基づく検索では、その一方は一致が検出されないいずれの場合。

using System;

public class Example
{
   public static void Main()
   {
      // Search for "oe" and "œu" in "œufs" and "oeufs".
      string s1 = "œufs";
      string s2 = "oeufs";
      FindInString(s1, "oe", StringComparison.CurrentCulture);
      FindInString(s1, "oe", StringComparison.Ordinal);
      FindInString(s2, "œu", StringComparison.CurrentCulture);
      FindInString(s2, "œu", StringComparison.Ordinal);
      Console.WriteLine();

      string s3 = "co\u00ADoperative";
      FindInString(s3, "\u00AD", StringComparison.CurrentCulture);
      FindInString(s3, "\u00AD", StringComparison.Ordinal);
   }

   private static void FindInString(string s, string substring, StringComparison options)
   {
      int result = s.IndexOf(substring, options);
      if (result != -1)
         Console.WriteLine("'{0}' found in {1} at position {2}", 
                           substring, s, result);
      else
         Console.WriteLine("'{0}' not found in {1}", 
                           substring, s);                                                  
   }
}
// The example displays the following output:
//       'oe' found in œufs at position 0
//       'oe' not found in œufs
//       'œu' found in oeufs at position 0
//       'œu' not found in oeufs
//       
//       '­' found in co­operative at position 0
//       '­' found in co­operative at position 2

などの文字列検索メソッド、 String.StartsWithString.IndexOf, 、カルチャに依存したまた実行または指定した文字列の文字または部分文字列かどうかを判断する文字列の順序比較を検出します。

検索方法、 String など、個々 の文字を検索するクラス、IndexOf メソッド、または、文字セットのいずれかなど、 IndexOfAny メソッド、序数に基づく検索の実行すべてです。 文字のカルチャに依存した検索を実行するを呼び出す必要があります、 CompareInfo などのメソッド CompareInfo.IndexOf(String, Char) または CompareInfo.LastIndexOf(String, Char)です。 序数に基づく、およびカルチャに依存した比較を使用する文字の検索の結果がまったく異なるできることに注意してください。 Unicode 文字「Æ」合字などの検索 (U + 00 C 6) の出現するすべてのコンポーネントが正しい順序で"AE"などの不一致がなど (U + 041U + 0045)、カルチャに応じて。 次の例は、違いを示しています、 String.IndexOf(Char)CompareInfo.IndexOf(String, Char) 個々 の文字を検索するときの方法です。 合字の「æ」(U + 00E6) は文字列内にある「航空写真]」EN-US カルチャの規則を使用する場合は da DK カルチャの規則を使用するときではなくまたは序数に基づく比較を実行するときにします。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] cultureNames = { "da-DK", "en-US" };
      CompareInfo ci;
      String str = "aerial";
      Char ch = 'æ';  // U+00E6

      Console.Write("Ordinal comparison -- ");
      Console.WriteLine("Position of '{0}' in {1}: {2}", ch, str,
                        str.IndexOf(ch));

      foreach (var cultureName in cultureNames) {
         ci = CultureInfo.CreateSpecificCulture(cultureName).CompareInfo;
         Console.Write("{0} cultural comparison -- ", cultureName);
         Console.WriteLine("Position of '{0}' in {1}: {2}", ch, str,
                           ci.IndexOf(str, ch));
      }
   }
}
// The example displays the following output:
//       Ordinal comparison -- Position of 'æ' in aerial: -1
//       da-DK cultural comparison -- Position of 'æ' in aerial: -1
//       en-US cultural comparison -- Position of 'æ' in aerial: 0

これに対して、 String を検索する文字ではなく、文字列検索オプションが明示的に型のパラメーターで指定されていない場合、カルチャに依存した検索を実行するメソッドをクラス StringComparisonします。 唯一の例外は、 Contains, 、序数に基づく検索を実行します。

使用して、 String.Compare 、並べ替え順序において 2 つの文字列の関係を決定する方法です。 通常、これは、カルチャに依存した操作です。 これに対しを呼び出す、 String.Equals 等しいかどうかをテストするメソッドです。 等しいかどうかテストが通常有効なユーザー名、パスワード、またはファイル システム パスなど、既知の文字列でユーザー入力を比較するため、序数に基づく操作では一般的です。

System_CAPS_warning警告

呼び出して等しいかどうかをテストすることは、 String.Compare メソッドと、戻り値は 0 であるかどうかを決定します。 ただし、この方法は推奨されません。 2 つの文字列が等しいかどうかを判断する、1 つのオーバー ロードを呼び出す必要があります、 String.Equals メソッドです。 優先のオーバー ロードを呼び出すのいずれかのインスタンスは、 Equals(String, StringComparison) メソッドまたは静的 Equals(String, String, StringComparison) メソッド、両方のメソッドが含まれるため、 System.StringComparison パラメーターを明示的に比較の種類を指定します。

次の例は、カルチャに依存した比較を実行するときにいずれかの代わりに使用する必要があります序数に等しいかどうかの危険性を示しています。 この場合、コードの目的は、文字列"FILE://"で URL の先頭の大文字と小文字を実行することによって、"FILE://"または"file://"で始まる Url のファイル システムへのアクセスを禁止します。 ただし、"file://"で始まる URL のトルコ語 (トルコ) カルチャを使用してカルチャに依存した比較を実行する場合の等値比較失敗すると、小文字の"i"のトルコ語の大文字表現が「İ」のため、"I"の代わりにします。 その結果、ファイル システムへのアクセスが誤って許可されます。 その一方で、序数に基づく比較を実行する場合は、等しいかどうか比較が成功し、ファイル システムへのアクセスが拒否されました。

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("tr-TR");      

      string filePath = "file://c:/notes.txt";

      Console.WriteLine("Culture-sensitive test for equality:");
      if (! TestForEquality(filePath, StringComparison.CurrentCultureIgnoreCase))
         Console.WriteLine("Access to {0} is allowed.", filePath);
      else
         Console.WriteLine("Access to {0} is not allowed.", filePath);

      Console.WriteLine("\nOrdinal test for equality:");
      if (! TestForEquality(filePath, StringComparison.OrdinalIgnoreCase))
         Console.WriteLine("Access to {0} is allowed.", filePath);
      else
         Console.WriteLine("Access to {0} is not allowed.", filePath);
   }

   private static bool TestForEquality(string str, StringComparison cmp)
   {
      int position = str.IndexOf("://");
      if (position < 0) return false;

      string substring = str.Substring(0, position);  
      return substring.Equals("FILE", cmp);
   }
}
// The example displays the following output:
//       Culture-sensitive test for equality:
//       Access to file://c:/notes.txt is allowed.
//       
//       Ordinal test for equality:
//       Access to file://c:/notes.txt is not allowed.

Unicode 文字の一部では、複数の表現があります。 たとえば、次のコード ポイントのいずれかの文字「いずれも」を表すことができます。

  • U + 1EAF

  • U + 0103 U + 0301

  • U + 0061 U + 0306 U + 0301

単一の文字に対して複数の表現には、検索、並べ替え、照合、およびその他の文字列操作が複雑になります。

Unicode 規格では、そのバイナリ表現のいずれかの Unicode 文字の 1 つのバイナリ表現を表す正規化と呼ばれるプロセスを定義します。 正規化には、別の規則に従う、正規化形式と呼ばれるいくつかのアルゴリズムを使用できます。 .NET Framework では、C、D、KC、および KD の Unicode 正規化形式をサポートします。 文字列は、同じ正規形で正規化されている、ときに、序数に基づく比較を使用して比較できます。

序数に基づく比較は対応する Unicode スカラー値の二項比較 Char それぞれの文字列です。 String クラスには、次を含む、序数に基づく比較を実行できるメソッドの多くが含まれています。

呼び出して、文字列が正規形 C に正規化されたかどうかを指定できます、 String.IsNormalized() メソッド、またはするを呼び出すことができます、 String.IsNormalized(NormalizationForm) 文字列が指定した正規形に標準化されているかどうかを決定する方法です。 呼び出すことも、 String.Normalize() 正規形 C、または文字列に変換するメソッドを呼び出すことができます、 String.Normalize(NormalizationForm) 文字列を指定した正規形に変換します。 正規化と文字列を比較する手順については、次を参照してください。、 Normalize()Normalize(NormalizationForm) メソッドです。

次の単純な例は、文字列の正規化を示しています。 次の 3 つの別の文字列で次の 3 つの異なる方法で文字「ố」を定義し、等しいかどうか序数に基づく比較を使用して、各文字列は、その他の 2 つの文字列によって異なるを決定します。 各文字列をサポートされている正規化形式に変換し、もう一度指定した正規形で各文字列の序数に基づく比較を実行します。 各ケースでは、等しいかどうかは、2 番目のテストは、文字列が等しいことを示します。

using System;
using System.Globalization;
using System.IO;
using System.Text;

public class Example
{
   private static StreamWriter sw;

   public static void Main()
   {
      sw = new StreamWriter(@".\TestNorm1.txt");

      // Define three versions of the same word. 
      string s1 = "sống";        // create word with U+1ED1
      string s2 = "s\u00F4\u0301ng";
      string s3 = "so\u0302\u0301ng";

      TestForEquality(s1, s2, s3);      
      sw.WriteLine();

      // Normalize and compare strings using each normalization form.
      foreach (string formName in Enum.GetNames(typeof(NormalizationForm)))
      {
         sw.WriteLine("Normalization {0}:\n", formName); 
         NormalizationForm nf = (NormalizationForm) Enum.Parse(typeof(NormalizationForm), formName);
         string[] sn = NormalizeStrings(nf, s1, s2, s3);
         TestForEquality(sn);           
         sw.WriteLine("\n");                                        
      }

      sw.Close();   
   }

   private static void TestForEquality(params string[] words)
   {
      for (int ctr = 0; ctr <= words.Length - 2; ctr++)
         for (int ctr2 = ctr + 1; ctr2 <= words.Length - 1; ctr2++) 
            sw.WriteLine("{0} ({1}) = {2} ({3}): {4}", 
                         words[ctr], ShowBytes(words[ctr]),
                         words[ctr2], ShowBytes(words[ctr2]),
                         words[ctr].Equals(words[ctr2], StringComparison.Ordinal));
   }

   private static string ShowBytes(string str)
   {
      string result = null;
      foreach (var ch in str)
         result += String.Format("{0} ", Convert.ToUInt16(ch).ToString("X4")); 
      return result.Trim();            
   } 

   private static string[] NormalizeStrings(NormalizationForm nf, params string[] words)
   {
      for (int ctr = 0; ctr < words.Length; ctr++)
         if (! words[ctr].IsNormalized(nf))
            words[ctr] = words[ctr].Normalize(nf); 
      return words;   
   }
}
// The example displays the following output:
//       sống (0073 1ED1 006E 0067) = sống (0073 00F4 0301 006E 0067): False
//       sống (0073 1ED1 006E 0067) = sống (0073 006F 0302 0301 006E 0067): False
//       sống (0073 00F4 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): False
//       
//       Normalization FormC:
//       
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       
//       
//       Normalization FormD:
//       
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       
//       
//       Normalization FormKC:
//       
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       
//       
//       Normalization FormKD:
//       
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True

正規化と正規化フォームの詳細については、次を参照してください。 System.Text.NormalizationForm, 、だけでなく Unicode Standard Annex #15: Unicode Normalization FormsNormalization FAQ unicode.org web サイトです。

String クラスの文字列を比較する、文字列の等価性をテスト、文字を検索するメンバーを提供または文字列を結合、値の書式設定、文字列のコピー、および文字列の正規化、文字列から部分文字列の抽出、文字列を変更する、文字列の部分文字列します。

次を使用して、並べ替え順序におけるそれらの相対位置を決定する文字列を比較する Stringメソッド。

  • Compare 並べ替え順序で 2 番目の文字列に 1 つの文字列の関係を示す整数を返します。

  • CompareOrdinal 2 番目の文字列がコード ポイントの比較に基づいてに 1 つの文字列の関係を示す整数を返します。

  • CompareTo 並べ替え順序で 2 番目の文字列を現在の文字列インスタンスの関係を示す整数を返します。 CompareTo(String) メソッドには、 IComparableIComparable<T> の実装、 String クラスです。

呼び出す、 Equals 2 つの文字列が等しいかどうかを判断するメソッドです。 インスタンス Equals(String, String, StringComparison) と、静的 Equals(String, StringComparison) オーバー ロードを使用して、比較ではカルチャに依存したまたは序数に基づくかどうかと、ケースを検討または無視するかどうかを指定できます。 等しいかどうかのほとんどのテストは、序数に基づく、およびファイル システム オブジェクトの場合) などのシステム リソースへのアクセスを決定する等価性の比較は序数で常にする必要があります。

String クラスには、2 つの種類 search メソッドにはが含まれています。

  • 返すメソッド、 Boolean 特定の部分文字列は文字列のインスタンス上に存在するかどうかを示す値。 以下の Contains, 、EndsWith, 、および StartsWith メソッドです。

  • 文字列インスタンス内の部分文字列の開始位置を示すメソッドです。 以下の IndexOf, 、IndexOfAny, 、LastIndexOf, 、および LastIndexOfAny メソッドです。

System_CAPS_warning警告

特定の部分文字列ではなく、特定のパターン文字列を検索する場合は、正規表現を使用する必要があります。 詳細については、「.NET Framework の正規表現」を参照してください。

String クラスには、文字列の値を変更する表示される次のメソッドが含まれています。

  • Insert 現在の文字列を挿入 String インスタンス。

  • PadLeft 文字列の先頭に指定した文字の 1 つ以上の出現回数を挿入します。

  • PadRight 文字列の先頭に指定した文字の 1 つ以上の出現回数を挿入します。

  • Remove 現在の部分文字列を削除 String インスタンス。

  • Replace 現在の別の部分文字列に部分文字列を置き換えます String インスタンス。

  • ToLower ToLowerInvariant 文字列内のすべての文字を小文字に変換します。

  • ToUpper ToUpperInvariant 文字列内のすべての文字を大文字に変換します。

  • Trim 先頭と文字列の末尾から文字のすべての出現を削除します。

  • TrimEnd 文字列の末尾から文字のすべての出現を削除します。

  • TrimStart 文字列の先頭から文字のすべての出現を削除します。

System_CAPS_important重要

すべての文字列の変更メソッドを返す新しい String オブジェクトです。 これらには、現在のインスタンスの値は変更しないでください。

String.Split メソッドは、複数の文字列に 1 つの文字列を分割します。 メソッドのオーバー ロードを使用すると、メソッドを抽出する部分文字列の最大数を特定し、空の文字列 (区切り記号が横にある場合に発生する) が返される文字列に含まれるかどうかを決定するに複数の区切り記号を指定できます。

String 文字列の連結方法を使用できます。

  • Concat 1 つの文字列の 1 つまたは複数の部分文字列を組み合わせたものです。

  • Join 1 つの要素に 1 つまたは複数の部分文字列を連結し、各部分文字列間の区切り記号を追加します。

String.Format メソッドでは、複合書式指定機能を使用していくつかのオブジェクトまたは値の文字列形式を文字列内の 1 つまたは複数のプレース ホルダーを置き換えます。 Format メソッドは、次の操作によく使用します。

  • 文字列に数値の文字列形式を埋め込む。

  • 文字列の日付と時刻の値の文字列形式を埋め込む。

  • 文字列の列挙値の文字列形式を埋め込む。

  • サポートするいくつかのオブジェクトの文字列形式を埋め込むには、 IFormattable 文字列内のインターフェイスです。

  • 右揃えまたは左揃えの文字列内のフィールド内の部分文字列。

操作と例を書式設定に関する詳細については、次を参照してください。、 Format オーバー ロードの概要です。

次を呼び出すことができます String 文字列のコピーを作成する方法。

  • Clone 既存の参照を返します String オブジェクトです。

  • Copy 既存の文字列のコピーを作成します。

  • CopyTo 文字列の一部を文字配列にコピーします。

Unicode では、単一の文字は、複数のコード ポイントを持つことができます。 正規化は、これらと同等の文字を同じバイナリ表現に変換します。 String.Normalize メソッドは、正規化を実行し、 String.IsNormalized メソッドでは、文字列を正規化するかどうかを判断します。

詳細については、例を参照してください、 正規化 このトピックの前半の「します。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型はスレッド セーフです。

トップに戻る
表示: