Compartir a través de


TextElementEnumerator Clase

Definición

Enumera los elementos de texto de una cadena.

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
Herencia
TextElementEnumerator
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se usa la TextElementEnumerator clase para enumerar los elementos de texto de una cadena.

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

Comentarios

.NET Framework define un elemento de texto como una unidad de texto que se muestra como un solo carácter, es decir, un grafo. Un elemento de texto puede ser cualquiera de los siguientes:

  • Carácter base, que se representa como un valor único Char . Por ejemplo, LATIN CAPITAL LETTER A (U+0041) y LATIN SMALL LETTER AE (U+00E6) son caracteres base.

  • Secuencia de caracteres combinada, que consta de un carácter base y uno o varios caracteres combinados. Por ejemplo, LATIN CAPITAL LETTER A (U+0041) seguido de COMBINING INTERFACES (U+0304) es una secuencia de caracteres combinada.

  • Pares suplentes, que el estándar Unicode define como una representación de caracteres codificada para un único carácter abstracto que consta de una secuencia de dos unidades de código: un suplente alto y un suplente bajo. Los pares suplentes se usan para representar caracteres fuera del plano multilingüe básico Unicode como caracteres codificados UTF-16. Por ejemplo, GOTHIC LETTER SAUIL (U+10343) se representa en codificación UTF-16 como suplente alto cuyo valor es 0xD800 y un suplente bajo cuyo valor es 0xDF43. Un par suplente puede representar un carácter base o un carácter combinado.

La TextElementEnumerator clase permite trabajar con los elementos de texto de una cadena en lugar de con objetos individuales Char .

Cree una instancia de un TextElementEnumerator objeto que represente una cadena determinada pasando la cadena al StringInfo.GetTextElementEnumerator método . Esto devuelve un enumerador que se coloca antes del primer elemento de texto de la cadena. Al llamar al Reset método también se devuelve el enumerador a esta posición. Dado que esto representa un estado no válido, debe llamar MoveNext a para avanzar el enumerador al primer elemento de texto de la cadena antes de leer el valor de la Current propiedad para devolver el elemento de texto actual.

Al trabajar con un TextElementEnumerator objeto, es responsable de colocar el enumerador. La Current propiedad devuelve el mismo elemento de texto hasta que se llama a MoveNext o Reset. El enumerador está en un estado no válido si se coloca antes del primer elemento de texto o después del último elemento de texto de la cadena. Cuando el enumerador está en un estado no válido, al intentar recuperar el valor de la Current propiedad se produce una excepción. Puede determinar si el enumerador está en un estado no válido probando si el valor devuelto de la MoveNext propiedad es false.

El TextElementEnumerator objeto representa una instantánea del estado actual de una variable de cadena o literal de cadena en el momento en que se crea una instancia del TextElementEnumerator objeto. Observe lo siguiente:

  • Los enumeradores de elementos de texto solo se pueden usar para leer datos en una cadena. No pueden modificar la cadena subyacente.

  • Un enumerador no tiene acceso exclusivo a la cadena que representa. Una variable de cadena se puede modificar después de crear el enumerador.

  • Un TextElementEnumerator objeto enumera los elementos de texto presentes en la cadena en el momento en que se creó una instancia del TextElementEnumerator objeto. No refleja ningún cambio posterior en la variable de cadena si esa variable se modifica después.

  • Dado que la TextElementEnumerator clase no invalida Object.Equals, dos TextElementEnumerator objetos que representan la misma cadena se considerarán desiguales.

Propiedades

Current

Obtiene el elemento de texto actual de la cadena.

ElementIndex

Obtiene el índice del elemento de texto en el que está situado actualmente el enumerador.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetTextElement()

Obtiene el elemento de texto actual de la cadena.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MoveNext()

Desplaza el enumerador al siguiente elemento de texto de la cadena.

Reset()

Establece el enumerador en su posición inicial (antes del primer elemento de texto de la cadena).

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también