Ler em inglês

Compartilhar via


TextElementEnumerator Classe

Definição

Enumera os elementos do texto de uma cadeia de caracteres.

C#
public class TextElementEnumerator : System.Collections.IEnumerator
C#
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class TextElementEnumerator : System.Collections.IEnumerator
Herança
TextElementEnumerator
Atributos
Implementações

Exemplos

O exemplo a seguir usa a TextElementEnumerator classe para enumerar os elementos de texto de uma cadeia de caracteres.

C#
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]:    Æ       Æ

*/

Comentários

O .NET Framework define um elemento de texto como uma unidade de texto que é exibida como um único caractere, ou seja, um grafema. Um elemento de texto pode ser qualquer um dos seguintes:

  • Um caractere base, que é representado como um único Char valor. Por exemplo, LATIN CAPITAL LETTER A (U+0041) e LATIN SMALL LETTER AE (U+00E6) são caracteres base.

  • Uma sequência de caracteres combinada, que consiste em um caractere base e um ou mais caracteres de combinação. Por exemplo, exemplo, LATIN CAPITAL LETTER A (U+0041) seguido por COMBINING MACRON (U+0304) é uma sequência de caracteres combinada.

  • Pares alternativos, 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. Pares alternativos são usados para representar caracteres fora do Plano Multilíngue Básico Unicode como caracteres codificados em UTF-16. Por exemplo, GOTHIC LETTER SAUIL (U+10343) é representado na codificação UTF-16 como um substituto alto cujo valor é 0xD800 e um substituto baixo cujo valor é 0xDF43. Um par alternativo pode representar um caractere base ou um caractere de combinação.

A TextElementEnumerator classe permite que você trabalhe com os elementos de texto em uma cadeia de caracteres em vez de com objetos únicos Char .

Você cria 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 . Isso retorna um enumerador posicionado antes do primeiro elemento de texto na cadeia de caracteres. Chamar o Reset método também traz o enumerador de volta para essa posição. 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 o valor da propriedade para retornar o elemento de Current texto atual.

Ao trabalhar com um TextElementEnumerator objeto , você é responsável por posicionar o enumerador. A Current propriedade retorna o mesmo elemento de texto até que você chame MoveNext ou 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. Quando o enumerador está em um estado inválido, tentar recuperar o valor da Current propriedade gera uma exceção. Você pode determinar se o enumerador está em um estado inválido testando se o valor retornado da MoveNext propriedade é false.

O TextElementEnumerator objeto representa um instantâneo do estado atual de uma variável de cadeia de caracteres ou literal de cadeia de caracteres no momento em que o TextElementEnumerator objeto é instanciado. Observe que:

  • Os enumeradores de elemento de texto só podem ser usados para ler dados em uma cadeia de caracteres. Eles não podem modificar a cadeia de caracteres subjacente.

  • Um enumerador não tem acesso exclusivo à cadeia de caracteres que ele representa. Uma variável de cadeia de caracteres pode ser modificada depois que o enumerador é criado.

  • Um TextElementEnumerator objeto enumera os elementos de texto presentes na cadeia de caracteres no momento em que o TextElementEnumerator objeto foi instanciado. Ele não refletirá nenhuma alteração subsequente na variável de cadeia de caracteres se essa variável for modificada posteriormente.

  • Como a TextElementEnumerator classe não substitui Object.Equals, dois TextElementEnumerator objetos que representam a mesma cadeia de caracteres serão considerados diferentes.

Propriedades

Current

Obtém o elemento de texto atual na cadeia de caracteres.

ElementIndex

Obtém o índice do elemento de texto em que o enumerador está posicionado atualmente.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetTextElement()

Obtém o elemento de texto atual na cadeia de caracteres.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MoveNext()

Avança o enumerador para o próximo elemento de texto da cadeia de caracteres.

Reset()

Define o enumerador com sua posição inicial, que é antes do primeiro elemento de texto na cadeia de caracteres.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Confira também