TextElementEnumerator TextElementEnumerator TextElementEnumerator TextElementEnumerator Class

Definição

Enumera os elementos do texto de uma cadeia de caracteres.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
Herança
TextElementEnumeratorTextElementEnumeratorTextElementEnumeratorTextElementEnumerator
Atributos
Implementações

Exemplos

O exemplo a seguir usa o TextElementEnumerator classe para enumerar os elementos de texto de uma cadeia de caracteres.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
Imports System.Globalization
Imports Microsoft.VisualBasic

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 'Main 

End Class 'SamplesTextElementEnumerator

'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]:    Æ       Æ

Comentários

O .NET Framework define um elemento de texto como uma unidade de texto que é exibido como um único caractere, ou seja, um grafemas.The .NET Framework defines a text element as a unit of text that is displayed as a single character, that is, a grapheme. Um elemento de texto pode ser qualquer um dos seguintes:A text element can be any of the following:

  • Um caractere base, que é representado como um único Char valor.A base character, which is represented as a single Char value. Por exemplo, latina maiuscula LETRA um (u+0041) e LATIN AE de LETRA minúscula (U + 00E6) são caracteres de base.For example, LATIN CAPITAL LETTER A (U+0041) and LATIN SMALL LETTER AE (U+00E6) are base characters.

  • Uma combinação de sequência, que consiste em um caractere base e um ou mais caracteres de combinação de caracteres.A combining character sequence, which consists of a base character and one or more combining characters. Por exemplo, exemplo, maiuscula latina um (u+0041) seguido pelo acento circunflexo INVERTIDO COMBINANDO (U + 0304) é uma combinação sequência de caracteres.For example, example, LATIN CAPITAL LETTER A (U+0041) followed by COMBINING MACRON (U+0304) is a combining character sequence.

  • Substitutos de pares, que o padrão Unicode define como uma representação de caracteres codificado para um único caractere abstrato que consiste em uma sequência de duas unidades de código: um substituto alto e um substituto baixo.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. Pares substitutos são usados para representar caracteres fora do plano multilíngue básico do Unicode como caracteres codificados em UTF-16.Surrogate pairs are used to represent characters outside of the Unicode Basic Multilingual Plane as UTF-16 encoded characters. Por exemplo, GOTHIC LETRA SAUIL (U + 10343) é representado no UTF-16 como um substituto alto cujo valor é 0xD800 e um substituto baixo cujo valor é 0xDF43 de codificação.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. Um par substituto pode representar um caractere base ou um caractere de combinação.A surrogate pair can represent a base character or a combining character.

O TextElementEnumerator classe permite que você trabalhe com os elementos de texto em uma cadeia de caracteres em vez de com único Char objetos.The TextElementEnumerator class allows you to work with the text elements in a string rather than with single Char objects.

Você criar uma instância de um TextElementEnumerator objeto que representa uma cadeia de caracteres específica, passando a cadeia de caracteres para o StringInfo.GetTextElementEnumerator método.You instantiate a TextElementEnumerator object that represents a particular string by passing the string to the StringInfo.GetTextElementEnumerator method. Isso retorna um enumerador que é posicionado antes do primeiro elemento de texto na cadeia de caracteres.This returns an enumerator that is positioned before the first text element in the string. Chamar o Reset método também traz o enumerador de volta para essa posição.Calling the Reset method also brings the enumerator back to this position. Porque isso representa um estado inválido, você deve chamar MoveNext para avançar o enumerador para o primeiro elemento de texto da cadeia de caracteres antes de ler o valor da Current propriedade para retornar o elemento de texto atual.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.

Ao trabalhar com um TextElementEnumerator do objeto, você é responsável por posicionando o enumerador.When working with a TextElementEnumerator object, you are responsible for positioning the enumerator. O Current propriedade retorna o mesmo elemento de texto até que você chamar MoveNext ou Reset.The Current property returns the same text element until you call either MoveNext or Reset. O enumerador está em um estado inválido, se ele está posicionado antes do primeiro elemento de texto ou após o último elemento de texto na cadeia de caracteres.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. Quando o enumerador está em um estado inválido, a tentativa de recuperar o valor da Current propriedade gera uma exceção.When the enumerator is in an invalid state, attempting to retrieve the value of the Current property throws an exception. Você pode determinar se o enumerador está em um estado inválido, testando se o valor de retorno de MoveNext é de propriedade false.You can determine whether the enumerator is in an invalid state by testing whether the return value of the MoveNext property is false.

O TextElementEnumerator objeto representa um instantâneo do estado atual de uma variável de cadeia de caracteres ou a cadeia de caracteres literal no momento em que o TextElementEnumerator objeto é instanciado.The 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. Observe que:Note that:

  • Enumeradores de elemento de texto somente podem ser usados para ler os dados em uma cadeia de caracteres.Text element enumerators can only be used to read data in a string. Eles não podem modificar a cadeia de caracteres subjacente.They cannot modify the underlying string.

  • Um enumerador não tem acesso exclusivo à cadeia de caracteres que ele representa.An enumerator does not have exclusive access to the string that it represents. Uma variável de cadeia de caracteres pode ser modificada depois que o enumerador é criado.A string variable can be modified after the enumerator is created.

  • Um TextElementEnumerator objeto enumera os elementos de texto presentes na cadeia de caracteres no momento em que o TextElementEnumerator objeto foi instanciado.A TextElementEnumerator object enumerates the text elements present in the string at the time that the TextElementEnumerator object was instantiated. Ele não reflete todas as alterações subsequentes para a variável de cadeia de caracteres se essa variável for alterada posteriormente.It does not reflect any subsequent changes to the string variable if that variable is modified afterward.

  • Porque o TextElementEnumerator classe não substitui Object.Equals, dois TextElementEnumerator objetos que representam a mesma cadeia de caracteres serão considerados desiguais.Because the TextElementEnumerator class does not override Object.Equals, two TextElementEnumerator objects that represent the same string will be considered unequal.

Propriedades

Current Current Current Current

Obtém o elemento de texto atual na cadeia de caracteres.Gets the current text element in the string.

ElementIndex ElementIndex ElementIndex ElementIndex

Obtém o índice do elemento de texto em que o enumerador está posicionado atualmente.Gets the index of the text element that the enumerator is currently positioned over.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetTextElement() GetTextElement() GetTextElement() GetTextElement()

Obtém o elemento de texto atual na cadeia de caracteres.Gets the current text element in the string.

GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
MoveNext() MoveNext() MoveNext() MoveNext()

Avança o enumerador para o próximo elemento de texto da cadeia de caracteres.Advances the enumerator to the next text element of the string.

Reset() Reset() Reset() Reset()

Define o enumerador com sua posição inicial, que é antes do primeiro elemento de texto na cadeia de caracteres.Sets the enumerator to its initial position, which is before the first text element in the string.

ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Aplica-se a

Veja também