TextElementEnumerator Třída

Definice

Vytvoří výčet textových prvků řetězce.Enumerates the text elements of a string.

public ref class TextElementEnumerator : System::Collections::IEnumerator
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
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 zobrazení výčtu textových prvků v řetězci.The following example uses the TextElementEnumerator class to enumerate the text elements of a string.

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]:    a`      a`
[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]:    a`      a`
[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]:    a`      a`
'[4]:    Æ       Æ

Poznámky

.NET Framework definuje textový prvek jako jednotku textu, která se zobrazuje jako jeden znak, tj. grapheme.The .NET Framework defines a text element as a unit of text that is displayed as a single character, that is, a grapheme. Textový prvek může být kterýkoli z následujících:A text element can be any of the following:

  • Základní znak, který je reprezentován jako jediná Char hodnota.A base character, which is represented as a single Char value. Například velké písmeno latinky A (U + 0041) a malé písmeno latinky AE (U + 00E6) představují základní znaky.For example, LATIN CAPITAL LETTER A (U+0041) and LATIN SMALL LETTER AE (U+00E6) are base characters.

  • Posloupnost znaků kombinování, která se skládá ze základního znaku a jednoho nebo více kombinací znaků.A combining character sequence, which consists of a base character and one or more combining characters. Například znak samohlásky latinky A (U + 0041) následovaný kombinací POMLČKy POMLČKy (U + 0304) je posloupnost znaků kombinování.For example, example, LATIN CAPITAL LETTER A (U+0041) followed by COMBINING MACRON (U+0304) is a combining character sequence.

  • Náhradní páry, které Standard Unicode definuje jako reprezentaci kódovaného znaku pro jeden abstraktní znak, který se skládá z sekvence dvou kódových jednotek: vysoká náhrada a Nízká náhrada.Surrogate pairs, which the Unicode Standard defines as a coded character representation for a single abstract character that consists of a sequence of two code units: a high surrogate, and a low surrogate. Náhradní páry slouží k reprezentaci znaků mimo sadu Unicode úrovně Basic jako znaků kódovaných ve formátu UTF-16.Surrogate pairs are used to represent characters outside of the Unicode Basic Multilingual Plane as UTF-16 encoded characters. Například GOTHIC LETTER SAUIL (U + 10343) je reprezentována v kódování UTF-16 jako vysoká náhrada, jejíž hodnota je 0xD800 a Nízká náhrada, jejíž hodnota je 0xDF43.For example, GOTHIC LETTER SAUIL (U+10343) is represented in UTF-16 encoding as a high surrogate whose value is 0xD800 and a low surrogate whose value is 0xDF43. Náhradní pár může představovat základní znak nebo znak diakritického znaménka.A surrogate pair can represent a base character or a combining character.

Třída umožňuje pracovat s textovými prvky v řetězci, nikoli s použitím jednotlivých Char objektů. TextElementEnumeratorThe TextElementEnumerator class allows you to work with the text elements in a string rather than with single Char objects.

Vytvořte instanci TextElementEnumerator objektu, který představuje konkrétní řetězec předáním řetězce StringInfo.GetTextElementEnumerator metodě.You instantiate a TextElementEnumerator object that represents a particular string by passing the string to the StringInfo.GetTextElementEnumerator method. Vrátí enumerátor, který je umístěn před prvním prvkem textu v řetězci.This returns an enumerator that is positioned before the first text element in the string. Reset Volání metody také přenáší enumerátor zpět na tuto pozici.Calling the Reset method also brings the enumerator back to this position. Vzhledem k tomu, že tato hodnota představuje neplatný stav MoveNext , je nutné zavolat pro posunutí čítače na první textový prvek řetězce před čtením hodnoty Current vlastnosti, která vrátí aktuální textový prvek.Because this represents an invalid state, you must call MoveNext to advance the enumerator to the first text element of the string before reading the value of the Current property to return the current text element.

Při práci s TextElementEnumerator objektem zodpovídáte za umisťování výčtu.When working with a TextElementEnumerator object, you are responsible for positioning the enumerator. Vlastnost vrací stejný textový prvek, dokud nebudete MoveNext volat nebo Reset. CurrentThe Current property returns the same text element until you call either MoveNext or Reset. Enumerátor je v neplatném stavu, pokud je umístěn před prvním nebo za posledním prvkem textu v řetězci.The enumerator is in an invalid state if it is positioned before the first text element or after the last text element in the string. Pokud je enumerátor v neplatném stavu, pokus o načtení hodnoty Current vlastnosti vyvolá výjimku.When the enumerator is in an invalid state, attempting to retrieve the value of the Current property throws an exception. Můžete určit, zda je enumerátor v neplatném stavu, otestováním, zda je MoveNext falsenávratová hodnota vlastnosti.You can determine whether the enumerator is in an invalid state by testing whether the return value of the MoveNext property is false.

Objekt představuje snímek aktuálního stavu řetězcové proměnné nebo řetězcového literálu v okamžiku TextElementEnumerator , kdy je vytvořena instance objektu. TextElementEnumeratorThe TextElementEnumerator object represents a snapshot of the current state of a string variable or string literal at the moment that the TextElementEnumerator object is instantiated. Všimněte si, že:Note that:

  • Enumerátory textového prvku lze použít pouze ke čtení dat v řetězci.Text element enumerators can only be used to read data in a string. Nemůžou upravovat podkladový řetězec.They cannot modify the underlying string.

  • Enumerátor nemá výhradní přístup k řetězci, který představuje.An enumerator does not have exclusive access to the string that it represents. Řetězcovou proměnnou lze změnit po vytvoření čítače výčtu.A string variable can be modified after the enumerator is created.

  • Objekt vytvoří výčet textových prvků, TextElementEnumerator které jsou k dispozici v řetězci v době, kdy byla vytvořena instance objektu. TextElementEnumeratorA TextElementEnumerator object enumerates the text elements present in the string at the time that the TextElementEnumerator object was instantiated. Neodráží žádné následné změny proměnné řetězce, pokud je tato proměnná změněna později.It does not reflect any subsequent changes to the string variable if that variable is modified afterward.

  • Vzhledem k TextElementEnumerator tomu, že třída Object.Equalsnepřepisuje TextElementEnumerator , dva objekty, které reprezentují stejný řetězec, budou považovány za neshodné.Because the TextElementEnumerator class does not override Object.Equals, two TextElementEnumerator objects that represent the same string will be considered unequal.

Vlastnosti

Current

Získá aktuální textový prvek v řetězci.Gets the current text element in the string.

ElementIndex

Získá index textového prvku, na kterém je enumerátor aktuálně umístěn.Gets the index of the text element that the enumerator is currently positioned over.

Metody

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

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

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Získá aktuální textový prvek v řetězci.Gets the current text element in the string.

GetType()

Type Získá aktuální instanci.Gets the Type of the current instance.

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

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

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

Posune enumerátor na další textový prvek v řetězci.Advances the enumerator to the next text element of the string.

Reset()

Nastaví enumerátor na jeho počáteční pozici, která je před prvním prvkem textu v řetězci.Sets the enumerator to its initial position, which is before the first text element in the string.

ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Platí pro

Viz také