TextElementEnumerator Třída

Definice

Vytvoří výčet textových prvků řetězce.

public ref class TextElementEnumerator : System::Collections::IEnumerator
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class TextElementEnumerator : System.Collections.IEnumerator
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TextElementEnumerator = class
    interface IEnumerator
Public Class TextElementEnumerator
Implements IEnumerator
Dědičnost
TextElementEnumerator
Atributy
Implementuje

Příklady

Následující příklad používá TextElementEnumerator třídu k vytvoření výčtu textových prvků řetězce.

using namespace System;
using namespace System::Globalization;
int 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 S"a" followed by the combining grave accent)
   //   - a base character (the ligature S"")
   String^ myString = L"\xD800\xDC00"
   L"a\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]:    à       à
[4]:    Æ       Æ

*/
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]:    à       à
[4]:    Æ       Æ

*/
Imports System.Globalization

Public Class SamplesTextElementEnumerator

   Public Shared Sub 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 "")
      Dim myString As String = ChrW(&HD800) & ChrW(&HDC00) & ChrW(&H0061) & ChrW(&H0300) & ChrW(&H00C6)

      ' Creates and initializes a TextElementEnumerator for myString.
      Dim myTEE As TextElementEnumerator = 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" + ControlChars.Tab + "Current" + ControlChars.Tab + "GetTextElement")
      myTEE.Reset()
      While myTEE.MoveNext()
         Console.WriteLine("[{0}]:" + ControlChars.Tab + "{1}" + ControlChars.Tab + "{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement())
      End While

   End Sub

End Class

'This code produces the following output.  The question marks take the place of high and low surrogates.
'
'Index   Current GetTextElement
'[0]:    𐀀       𐀀
'[2]:    à       à
'[4]:    Æ       Æ

Poznámky

Rozhraní .NET Framework definuje textový prvek jako jednotku textu, která je zobrazena jako jeden znak, tj. grafeme. Textový prvek může být některý z následujících prvků:

  • Základní znak, který je reprezentován jako jedna Char hodnota. Základní znaky jsou například VELKÉ PÍSMENO LATINKY A (U+0041) a MALÉ PÍSMENO LATINKY AE (U+00E6).

  • Slučovací sekvence znaků, která se skládá ze základního znaku a jednoho nebo více kombinujících znaků. Například VELKÉ PÍSMENO LATINKY A (U+0041) následované kombinací znaků (U+0304) je sekvence kombinujících znaků.

  • Náhradní páry, které standard Unicode definuje jako kódovanou reprezentaci znaků pro jeden abstraktní znak, který se skládá ze posloupnosti dvou jednotek kódu: vysoké náhrady a nízké náhrady. Náhradní páry se používají k reprezentaci znaků mimo základní vícejazyčnou rovinu Unicode jako znaky kódované UTF-16. Například GOTHIC LETTER SAUIL (U+10343) je reprezentován v kódování UTF-16 jako vysoká náhrada, jejíž hodnota je 0xD800 a nízká náhradní, jejíž hodnota je 0xDF43. Náhradní pár může představovat základní znak nebo kombinační znak.

Třída TextElementEnumerator umožňuje pracovat s textovými prvky v řetězci, nikoli s jedním Char objektem.

Instanci objektu TextElementEnumerator , který představuje konkrétní řetězec, vytvoříte předáním řetězce metodě StringInfo.GetTextElementEnumerator . Vrátí enumerátor, který je umístěn před prvním textovým prvkem v řetězci. Volání metody Reset také vrátí enumerátor zpět na tuto pozici. Vzhledem k tomu, že toto představuje neplatný stav, je nutné volat MoveNext k posunu enumerátoru na první textový prvek řetězce před čtením hodnoty Current vlastnosti vrátit aktuální textový prvek.

Při práci s objektem TextElementEnumerator zodpovídáte za umístění enumerátoru. Vlastnost Current vrátí stejný textový prvek, dokud nevoláte nebo ResetMoveNext . Enumerátor je v neplatném stavu, pokud je umístěn před prvním textovým prvkem nebo za posledním textovým prvkem v řetězci. Pokud je enumerátor v neplatném stavu, pokus o načtení hodnoty Current vlastnosti vyvolá výjimku. Pokud chcete zjistit, jestli je enumerátor v neplatném stavu, otestujete, jestli je falsevrácená MoveNext hodnota vlastnosti .

Objekt TextElementEnumerator představuje snímek aktuálního stavu řetězcové proměnné nebo řetězcového literálu v okamžiku vytvoření instance objektu TextElementEnumerator . Poznámky:

  • Výčty textových prvků lze použít pouze ke čtení dat v řetězci. Nemůžou upravit podkladový řetězec.

  • Enumerátor nemá výhradní přístup k řetězci, který představuje. Řetězcovou proměnnou lze upravit po vytvoření enumerátoru.

  • Objekt TextElementEnumerator vytvoří výčet textových prvků, které jsou v řetězci v době vytvoření TextElementEnumerator instance objektu. Neodráží žádné následné změny v řetězcové proměnné, pokud se tato proměnná následně změní.

  • TextElementEnumerator Protože třída nepřepíše Object.Equals, dva TextElementEnumerator objekty, které představují stejný řetězec, budou považovány za nerovné.

Vlastnosti

Current

Získá aktuální textový prvek v řetězci.

ElementIndex

Získá index textového prvku, který je nyní umístěn enumerátor.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetTextElement()

Získá aktuální textový prvek v řetězci.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
MoveNext()

Posune enumerátor na další textový prvek řetězce.

Reset()

Nastaví enumerátor na počáteční pozici, která je před prvním textovým prvkem v řetězci.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také