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á třídu k vytvoření výčtu TextElementEnumerator 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

.NET Framework definuje textový prvek jako jednotku textu, která se zobrazí 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. Například VELKÉ PÍSMENO LATINKY A (U+0041) a MALÉ PÍSMENO LATINKY AE (U+00E6) jsou základní znaky.

  • Kombinace znakové sekvence, která se skládá ze základního znaku a jednoho nebo více kombinujících znaků. Například VELKÁ PÍSMENA LATINKA A (U+0041) následovaná kombinací kombinace ZNAKOVÉ SEKVENCE (U+0304).

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

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

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

Při práci s objektem TextElementEnumerator zodpovídáte za umístění výčtu. 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, zda je enumerátor v neplatném stavu, otestujte, zda je falsevrácená hodnota MoveNext 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 elementů lze použít pouze ke čtení dat v řetězci. Nemůžou upravit základní řetězec.

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

  • TextElementEnumerator Objekt vypíše textové prvky, které jsou přítomné v řetězci v okamžiku vytvoření instance objektuTextElementEnumerator. Pokud se tato proměnná později upraví, neodráží žádné následné změny proměnné řetězce.

  • TextElementEnumerator Vzhledem k tomu, ž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ý enumerátor je aktuálně umístěn nad.

Metody

Equals(Object)

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

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

Slouží jako výchozí funkce hash.

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

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

GetType()

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru Object.

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

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

Reset()

Nastaví enumerátor na počáteční pozici, což 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é