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

TextElementEnumerator クラス

 

公開日: 2016年10月

文字列のテキスト要素を列挙します。

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

System.Object
  System.Globalization.TextElementEnumerator

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class TextElementEnumerator : IEnumerator

名前説明
System_CAPS_pubpropertyCurrent

文字列内の現在のテキスト要素を取得します。

System_CAPS_pubpropertyElementIndex

列挙子が現在位置しているテキスト要素のインデックスを取得します。

名前説明
System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetTextElement()

文字列内の現在のテキスト要素を取得します。

System_CAPS_pubmethodGetType()

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

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodMoveNext()

列挙子を文字列の次のテキスト要素に進めます。

System_CAPS_pubmethodReset()

列挙子を初期位置、つまり文字列の最初のテキスト要素の前に設定します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

.NET Framework では、単一の文字、つまり、書記素として表示されるテキストの単位としてテキスト要素を定義します。 テキスト要素には、次のいずれかを指定できます。

  • 1 つとして表される基本文字 Char 値。 LATIN CAPITAL などの文字 (u+0041) および LATIN SMALL 文字 AE (U + 00E6) は基本文字です。

  • 組み合わせ文字のシーケンスで、基本文字と 1 つまたは複数の組み合わせの文字で構成されます。 たとえば、例では、(u+0041) が続く結合抑 LATIN CAPITAL LETTER (U + 0304) 組み合わせは、文字のシーケンス。

  • サロゲート ペアをする、 Unicode Standard 、一連の 2 つのコード単位で構成される単一の抽象文字のコード化文字表現として定義: 上位サロゲートと下位サロゲート。 サロゲート ペアが使用され、utf-8 でエンコードされた文字として Unicode 基本多言語面以外の文字を表します。 たとえば、ゴシック文字 SAUIL (U + 10343) は utf-8 エンコーディングの値が 0xD800 高代理キーと値が 0xDF43 下位サロゲートとして表されます。 サロゲート ペアは、基本文字または組み合わせの文字を表すことができます。

TextElementEnumerator クラスでは、1 つではなく、文字列内のテキスト要素で作業できます。 Char オブジェクトです。

インスタンス化する、 TextElementEnumerator に文字列を渡すことによって、特定の文字列を表すオブジェクト、 StringInfo.GetTextElementEnumerator メソッドです。 これは、文字列内の最初のテキスト要素の前に位置している列挙子を返します。 呼び出す、 Reset メソッドがこの位置に戻さも、列挙子を表示します。 これを表すため、無効な状態を呼び出す必要があります MoveNext の値を読み取る前に、文字列の最初のテキスト要素を列挙子を進める、 Current を現在のテキスト要素を返すプロパティ。

使用する場合、 TextElementEnumerator オブジェクトの列挙子の位置を担当します。 Current プロパティは、いずれかが呼び出されるまでに、同じテキスト要素を返します MoveNext または Resetです。 文字列の最後のテキスト要素の前後のテキストの最初の要素に配置されている場合、列挙子は無効な状態です。 列挙子が無効な状態のときは、値を取得しようとすると、 Current プロパティは例外をスローします。 テストして、列挙子は、無効な状態かどうかを判断できるかどうかの戻り値、 MoveNext プロパティは falseです。

TextElementEnumerator オブジェクトが文字列変数または現時点でリテラル文字列の現在の状態のスナップショットを表しますが、 TextElementEnumerator オブジェクトをインスタンス化します。 次の点に注意してください。

  • テキスト要素の列挙子は、文字列内のデータの読み取りのみ使用できます。 基になる文字列を変更することはできません。

  • 列挙子には、それが表す文字列への排他アクセスがありません。 列挙子を作成した後、文字列変数を変更できます。

  • A TextElementEnumerator オブジェクト、テキスト要素を列挙時に、文字列内に存在する、 TextElementEnumerator オブジェクトをインスタンス化します。 その変数が終わった後で変更された場合、その後の文字列変数の変更は反映されません。

  • TextElementEnumerator クラスでオーバーライドしない Object.Equals, 、2 つ TextElementEnumerator 同じ文字列を表すオブジェクトと等しくない見なされます。

次の例では、 TextElementEnumerator 文字列のテキスト要素を列挙するクラス。

using System;
using System.Globalization;


public class SamplesTextElementEnumerator  {

   public static void Main()  {

      // Creates and initializes a String containing the following:
      //   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
      //   - a combining character sequence (the Latin small letter "a" followed by the combining grave accent)
      //   - a base character (the ligature "")
      String myString = "\uD800\uDC00\u0061\u0300\u00C6";

      // Creates and initializes a TextElementEnumerator for myString.
      TextElementEnumerator myTEE = StringInfo.GetTextElementEnumerator( myString );

      // Displays the values returned by ElementIndex, Current and GetTextElement.
      // Current and GetTextElement return a string containing the entire text element. 
      Console.WriteLine( "Index\tCurrent\tGetTextElement" );
      myTEE.Reset();
      while (myTEE.MoveNext())  {
         Console.WriteLine( "[{0}]:\t{1}\t{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement() );
      }

   }

}

/*
This code produces the following output.  The question marks take the place of high and low surrogates.

Index   Current GetTextElement
[0]:    ??      ??
[2]:    a`      a`
[4]:    Æ       Æ

*/

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

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: