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

Clase CharEnumerator

 

Publicado: octubre de 2016

Admite la iteración en un objeto String y la lectura de sus caracteres individuales. Esta clase no puede heredarse.

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

System.Object
  System.CharEnumerator

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class CharEnumerator : IEnumerator, ICloneable, 
	IEnumerator<char>, IDisposable

NombreDescripción
System_CAPS_pubpropertyCurrent

Obtiene el carácter actualmente que se hace referencia en la cadena enumerada por este CharEnumerator objeto.

NombreDescripción
System_CAPS_pubmethodClone()

Crea una copia del elemento actual CharEnumerator objeto.

System_CAPS_pubmethodDispose()

Libera todos los recursos usados por la instancia actual de la clase CharEnumerator.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodMoveNext()

Incrementa el índice interno del actual CharEnumerator objeto hasta el siguiente carácter de la cadena enumerada.

System_CAPS_pubmethodReset()

Inicializa el índice en una posición situada lógicamente delante del primer carácter de la cadena enumerada.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privpropertyIEnumerator.Current

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene el carácter de referenciado actualmente en la cadena enumerada por este CharEnumerator objeto. Para una descripción de este miembro, vea IEnumerator.Current.

A T:System.CharEnumerator provides read-only access to the characters in a referenced T:System.String object. For example, the foreach statement of the Microsoft Visual Basic and C# programming languages, which iterates through the elements of a collection, retrieves a T:System.CharEnumerator from a T:System.String object in order to iterate through the characters in that object.

There is no public constructor for T:System.CharEnumerator. Instead, call a T:System.String object's M:System.String.GetEnumerator method to obtain a T:System.CharEnumerator that is initialized to reference the string.

A T:System.CharEnumerator maintains an internal index to the characters in the string the T:System.CharEnumerator references. The state of the index is invalid when it references a character position logically before the first character or after the last character in the string, and valid when it references a character within the string. The index is initialized to a position logically before the first character, and is set to a position after the last character when the iteration is complete. An exception is thrown if you attempt to access a character while the index is invalid.

The M:System.CharEnumerator.MoveNext method increments the index by one, so the first and subsequent characters are accessed in turn. The M:System.CharEnumerator.Reset method sets the index to a position logically before the first character. The P:System.CharEnumerator.Current property retrieves the character currently referenced by index. The M:System.CharEnumerator.Clone method creates a copy of the T:System.CharEnumerator.

System_CAPS_noteNota

Several independent instances of T:System.CharEnumerator across one or more threads can have access to a single instance of T:System.String. This class is implemented to support the T:System.Collections.IEnumerator interface. For more information regarding the use of an enumerator, see the T:System.Collections.IEnumerator topic.

The following example uses the T:System.CharEnumerator class to enumerate the individual characters in a string. It instantiates a T:System.CharEnumerator object by calling the M:System.String.GetEnumerator method, moves from one character to the next by calling the M:System.CharEnumerator.MoveNext method, and displays the current character by retrieving the value of the P:System.CharEnumerator.Current property.

string title = "A Tale of Two Cities";
CharEnumerator chEnum = title.GetEnumerator();
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null; 

while (chEnum.MoveNext())
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += chEnum.Current + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:", 
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);    
Console.WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s

Note, however, that the same operation can be performed somewhat more intuitively by using foreach (in C#) or For Each (in Visual Basic), as the following example shows.

string title = "A Tale of Two Cities";
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null; 

foreach (char ch in title)
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += ch + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:", 
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);    
Console.WriteLine(outputLine3);
// The example displays the following output to the console:      
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: