Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método StringInfo.GetTextElementEnumerator (String)

 

Publicado: octubre de 2016

Devuelve un enumerador que recorre en iteración los elementos de toda la cadena de texto.

Espacio de nombres:   System.Globalization
Ensamblado:  mscorlib (en mscorlib.dll)

public static TextElementEnumerator GetTextElementEnumerator(
	string str
)

Parámetros

str
Type: System.String

La cadena para recorrer en iteración.

Valor devuelto

Type: System.Globalization.TextElementEnumerator

Un TextElementEnumerator para toda la cadena.

Exception Condition
ArgumentNullException

El valor de str es null.

.NET Framework define un elemento de texto como una unidad de texto que se muestra como un solo carácter, es decir, un grafema. Un elemento de texto puede ser un carácter base, un par suplente o un carácter combinable secuencia. El Unicode Standard define un par suplente como una representación de caracteres codificados para un único carácter abstracto que consta de una secuencia de dos unidades de código, donde la primera unidad del par es un suplente alto y el segundo es un suplente bajo. El estándar Unicode define una combinación secuencia como una combinación de un carácter base y uno o más caracteres de combinación de caracteres. Un par suplente puede representar un carácter base o un carácter combinable.

El enumerador de elemento de texto sólo se utiliza para leer los datos de la cadena; no puede modificar la cadena subyacente. El enumerador no tiene acceso exclusivo a la cadena.

El enumerador se encuentra en un estado no válido si se coloca antes del primer elemento de texto en la cadena o después del último elemento de texto de la cadena. Cuando el enumerador está en un estado no válido, una llamada a Current produce una excepción.

Inicialmente, el enumerador se coloca antes del primer elemento de texto en la cadena. Reset también devuelve el enumerador a esta posición. Por lo tanto, después de crea un enumerador o después de Reset se llama, MoveNext debe llamarse para adelantar el enumerador hasta el primer elemento de texto de la cadena antes de leer el valor de Current.

Current devuelve el mismo objeto hasta que se llama a MoveNext o a Reset.

Cuando se pasa el final de la cadena, el enumerador vuelve a estar en un estado no válido y que realiza la llamada MoveNext devuelve false. Llamar a Current produce una excepción si la última llamada a MoveNext devuelve false.

En el ejemplo de código siguiente se muestra cómo llamar a la GetTextElementEnumerator (método). Este ejemplo de código forma parte de un ejemplo mayor proporcionado para el StringInfo clase.

using System;
using System.Text;
using System.Globalization;

public sealed class App {
   static void Main() {
      // The string below contains combining characters.
      String s = "a\u0304\u0308bc\u0327";

      // Show each 'character' in the string.
      EnumTextElements(s);

      // Show the index in the string where each 'character' starts.
      EnumTextElementIndexes(s);
   }

   // Show how to enumerate each real character (honoring surrogates) in a string.
   static void EnumTextElements(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the enumerator returned from GetTextElementEnumerator 
      // method to examine each real character.
      TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(s);
      while (charEnum.MoveNext()) {
         sb.AppendFormat(
           "Character at index {0} is '{1}'{2}",
           charEnum.ElementIndex, charEnum.GetTextElement(),
           Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of GetTextElementEnumerator:");
      Console.WriteLine(sb);
   }

   // Show how to discover the index of each real character (honoring surrogates) in a string.
   static void EnumTextElementIndexes(String s) {
      // This StringBuilder holds the output results.
      StringBuilder sb = new StringBuilder();

      // Use the ParseCombiningCharacters method to 
      // get the index of each real character in the string.
      Int32[] textElemIndex = StringInfo.ParseCombiningCharacters(s);

      // Iterate through each real character showing the character and the index where it was found.
      for (Int32 i = 0; i < textElemIndex.Length; i++) {
         sb.AppendFormat(
            "Character {0} starts at index {1}{2}",
            i, textElemIndex[i], Environment.NewLine);
      }

      // Show the results.
      Console.WriteLine("Result of ParseCombiningCharacters:");
      Console.WriteLine(sb);
   }
}

// This code produces the following output.
//
// Result of GetTextElementEnumerator:
// Character at index 0 is 'a-"'
// Character at index 3 is 'b'
// Character at index 4 is 'c,'
// 
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: