Sdílet prostřednictvím


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 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. Například VELKÉ PÍSMENO LATINKY A (U+0041) a MALÉ PÍSMENO LATINKY AE (U+00E6) jsou základní znaky.

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

  • Náhradní páry, které standard Unicode definuje jako kódované znakové vyjádření pro jeden abstraktní znak, který se skládá ze sekvence 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 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ík, jehož hodnota je 0xD800 a nízká náhradní hodnota, 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, nikoli 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 . 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 do této pozice. Vzhledem k tomu, že představuje neplatný stav, musíte před MoveNext načtením hodnoty Current vlastnosti vrátit aktuální textový element enumerátoru na první textový prvek řetězce.

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. Můžete určit, zda je enumerátor v neplatném stavu testováním, zda návratová MoveNext() hodnota vlastnosti je false.

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 . Všimněte si, že:

  • Výčty textového elementu lze použít pouze ke čtení dat v řetězci. Nemůžou upravovat základní řetězec.

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

  • Objekt TextElementEnumerator vytvoří výčet textových prvků v řetězci v okamžiku vytvoření instance objektu TextElementEnumerator . Neodráží žádné následné změny proměnné řetězce, pokud se tato proměnná později upraví.

  • 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

Name Description
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

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven 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()

Získá Type aktuální instance.

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

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

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

Přejde 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é