Leer en inglés

Compartir a través de


CharEnumerator.Current Propiedad

Definición

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

C#
public char Current { get; }

Valor de propiedad

Carácter Unicode al que hace referencia actualmente este objeto CharEnumerator.

Implementaciones

Excepciones

El índice no es válido; es decir, está delante del primer carácter o detrás del último carácter de la cadena enumerada.

Ejemplos

En el ejemplo siguiente se usa la CharEnumerator clase para enumerar los caracteres individuales de una cadena. Crea una instancia de un CharEnumerator objeto llamando al String.GetEnumerator método , se mueve de un carácter a otro llamando al MoveNext método y muestra el carácter actual recuperando el valor de la Current propiedad .

C#
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

Sin embargo, tenga en cuenta que la misma operación se puede realizar de forma más intuitiva mediante foreach (en C#) o For Each (en Visual Basic), como se muestra en el ejemplo siguiente.

C#
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

Comentarios

La CharEnumerator clase mantiene un índice interno en la cadena enumerada y la Current propiedad devuelve el carácter al que hace referencia actualmente el índice. Esta propiedad solo se debe invocar cuando el índice es válido; de lo contrario, se produce una excepción.

El índice siempre no es válido para una cadena vacía (""). El índice tampoco es válido después de llamar al String.GetEnumerator método o Reset . Después de llamar a cualquiera de estos métodos, invoque el MoveNext método para ajustar el índice al primer carácter de la cadena enumerada. El índice es válido siempre que el MoveNext método devuelve true.

Currentno mueve el índice y las llamadas consecutivas para devolver el mismo carácter hasta MoveNextque se llama a Current , Reseto String.GetEnumerator .

Se aplica a

Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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 2.0, 2.1