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 TextElementEnumerator a 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.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 '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 é exibida 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, letra latina maiúscula A (U + 0041) e letra latina minúscula AE (U + 00E6) são caracteres base.For example, LATIN CAPITAL LETTER A (U+0041) and LATIN SMALL LETTER AE (U+00E6) are base characters.

  • Uma sequência de caracteres de combinação, que consiste em um caractere base e um ou mais caracteres combináveis.A combining character sequence, which consists of a base character and one or more combining characters. Por exemplo, a letra latina maiúscula A (U + 0041) seguida pela combinação de MACROn (U + 0304) é uma sequência de caracteres de combinação.For example, example, LATIN CAPITAL LETTER A (U+0041) followed by COMBINING MACRON (U+0304) is a combining character sequence.

  • Pares substitutos, que o padrão Unicode define como uma representação de caractere 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íngüe básico 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, a letra GOTHIC minúscula SAUIL (U + 10343) é representada na codificação UTF-16 como um substituto alto cujo valor é 0xD800 e um substituto baixo cujo valor é 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. 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.

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

Você cria uma TextElementEnumerator instância de um objeto que representa uma cadeia de caracteres específica, StringInfo.GetTextElementEnumerator passando a cadeia de caracteres para o 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 está 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 leva o enumerador de volta para essa posição.Calling the Reset method also brings the enumerator back to this position. Como 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 Current o valor da 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 objeto, você é responsável por posicionar o enumerador.When working with a TextElementEnumerator object, you are responsible for positioning the enumerator. A Current propriedade retorna o mesmo elemento de texto até que você MoveNext chame Resetou.The Current property returns the same text element until you call either MoveNext or Reset. O enumerador estará em um estado inválido se estiver 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, tentar 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 MoveNext da 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 um literal de cadeia de TextElementEnumerator caracteres no momento em que o 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 elementos de texto só podem ser usados para ler 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 TextElementEnumerator o 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 refletirá nenhuma alteração subsequente na variável de cadeia de caracteres se essa variável for modificada posteriormente.It does not reflect any subsequent changes to the string variable if that variable is modified afterward.

  • Como a 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