TextElementEnumerator Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Enumera os elementos do texto de uma cadeia de caracteres.
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
- 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.
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]: à à
[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]: à à
[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]: Æ Æ
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) |