String.GetEnumerator Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera un objeto que puede recorrer en iteración los caracteres individuales de esta cadena.
public:
CharEnumerator ^ GetEnumerator();
public CharEnumerator GetEnumerator();
member this.GetEnumerator : unit -> CharEnumerator
Public Function GetEnumerator () As CharEnumerator
Devoluciones
Objeto enumerador.
Ejemplos
En el ejemplo siguiente se recorren en iteración los caracteres de varias cadenas y se muestra información sobre sus caracteres individuales. Usa la construcción de iteración de lenguaje en lugar de una llamada al GetEnumerator método .
using System;
class Example
{
public static void Main()
{
EnumerateAndDisplay("Test Case");
EnumerateAndDisplay("This is a sentence.");
EnumerateAndDisplay("Has\ttwo\ttabs" );
EnumerateAndDisplay("Two\nnew\nlines");
}
static void EnumerateAndDisplay(String phrase)
{
Console.WriteLine("The characters in the string \"{0}\" are:",
phrase);
int CharCount = 0;
int controlChars = 0;
int alphanumeric = 0;
int punctuation = 0;
foreach (var ch in phrase) {
Console.Write(Char.IsControl(ch) ? $"{ch}" : $"0x{(ushort)ch:X4}");
if (Char.IsLetterOrDigit(ch))
alphanumeric++;
else if (Char.IsControl(ch))
controlChars++;
else if (Char.IsPunctuation(ch))
punctuation++;
CharCount++;
}
Console.WriteLine("\n Total characters: {0,3}", CharCount);
Console.WriteLine(" Alphanumeric characters: {0,3}", alphanumeric);
Console.WriteLine(" Punctuation characters: {0,3}", punctuation);
Console.WriteLine(" Control Characters: {0,3}\n", controlChars);
}
}
// The example displays the following output:
// The characters in the string "Test Case" are:
// 'T' 'e' 's' 't' ' ' 'C' 'a' 's' 'e'
// Total characters: 9
// Alphanumeric characters: 8
// Punctuation characters: 0
// Control Characters: 0
//
// The characters in the string "This is a sentence." are:
// 'T' 'h' 'i' 's' ' ' 'i' 's' ' ' 'a' ' ' 's' 'e' 'n' 't' 'e' 'n' 'c' 'e' '.'
// Total characters: 19
// Alphanumeric characters: 15
// Punctuation characters: 1
// Control Characters: 0
//
// The characters in the string "Has two tabs" are:
// 'H' 'a' 's' '0x0009' 't' 'w' 'o' '0x0009' 't' 'a' 'b' 's'
// Total characters: 12
// Alphanumeric characters: 10
// Punctuation characters: 0
// Control Characters: 2
//
// The characters in the string "Two
// new
// lines" are:
// 'T' 'w' 'o' '0x000A' 'n' 'e' 'w' '0x000A' 'l' 'i' 'n' 'e' 's'
// Total characters: 13
// Alphanumeric characters: 11
// Punctuation characters: 0
// Control Characters: 2
open System
let enumerateAndDisplay phrase =
printfn $"The characters in the string \"{phrase}\" are:"
let mutable CharCount = 0
let mutable controlChars = 0
let mutable alphanumeric = 0
let mutable punctuation = 0
for ch in phrase do
if Char.IsControl ch then
printf $"{ch}"
else
printf $"0x{uint16 ch:X4}"
if Char.IsLetterOrDigit ch then
alphanumeric <- alphanumeric + 1
elif Char.IsControl ch then
controlChars <- controlChars + 1
elif Char.IsPunctuation ch then
punctuation <- punctuation + 1
CharCount <- CharCount + 1
printfn $"\n Total characters: {CharCount,3}"
printfn $" Alphanumeric characters: {alphanumeric,3}"
printfn $" Punctuation characters: {punctuation,3}"
printfn $" Control Characters: {controlChars,3}\n"
enumerateAndDisplay "Test Case"
enumerateAndDisplay "This is a sentence."
enumerateAndDisplay "Has\ttwo\ttabs"
enumerateAndDisplay "Two\nnew\nlines"
// The example displays the following output:
// The characters in the string "Test Case" are:
// 'T' 'e' 's' 't' ' ' 'C' 'a' 's' 'e'
// Total characters: 9
// Alphanumeric characters: 8
// Punctuation characters: 0
// Control Characters: 0
//
// The characters in the string "This is a sentence." are:
// 'T' 'h' 'i' 's' ' ' 'i' 's' ' ' 'a' ' ' 's' 'e' 'n' 't' 'e' 'n' 'c' 'e' '.'
// Total characters: 19
// Alphanumeric characters: 15
// Punctuation characters: 1
// Control Characters: 0
//
// The characters in the string "Has two tabs" are:
// 'H' 'a' 's' '0x0009' 't' 'w' 'o' '0x0009' 't' 'a' 'b' 's'
// Total characters: 12
// Alphanumeric characters: 10
// Punctuation characters: 0
// Control Characters: 2
//
// The characters in the string "Two
// new
// lines" are:
// 'T' 'w' 'o' '0x000A' 'n' 'e' 'w' '0x000A' 'l' 'i' 'n' 'e' 's'
// Total characters: 13
// Alphanumeric characters: 11
// Punctuation characters: 0
// Control Characters: 2
Module Example
Sub Main()
EnumerateAndDisplay("Test Case")
EnumerateAndDisplay("This is a sentence.")
EnumerateAndDisplay("Has" & vbTab & "two" & vbTab & "tabs")
EnumerateAndDisplay("Two" & vbLf & "new" & vbLf & "lines")
End Sub
Sub EnumerateAndDisplay(phrase As String)
Console.WriteLine("The characters in the string ""{0}"" are:", phrase)
Dim charCount As Integer = 0
Dim controlChars As Integer = 0
Dim alphanumeric As Integer = 0
Dim punctuation As Integer = 0
For Each ch In phrase
Console.Write("'{0}' ", If(Not Char.IsControl(ch), ch,
"0x" + Convert.ToUInt16(ch).ToString("X4")))
If Char.IsLetterOrDigit(ch) Then
alphanumeric += 1
Else If Char.IsControl(ch) Then
controlChars += 1
Else If Char.IsPunctuation(ch) Then
punctuation += 1
End If
CharCount += 1
Next
Console.WriteLine()
Console.WriteLine(" Total characters: {0,3}", CharCount)
Console.WriteLine(" Alphanumeric characters: {0,3}", alphanumeric)
Console.WriteLine(" Punctuation characters: {0,3}", punctuation)
Console.WriteLine(" Control Characters: {0,3}", controlChars)
Console.WriteLine()
End Sub
End Module
' This example displays the following output:
' The characters in the string "Test Case" are:
' 'T' 'e' 's' 't' ' ' 'C' 'a' 's' 'e'
' Total characters: 9
' Alphanumeric characters: 8
' Punctuation characters: 0
' Control Characters: 0
'
' The characters in the string "This is a sentence." are:
' 'T' 'h' 'i' 's' ' ' 'i' 's' ' ' 'a' ' ' 's' 'e' 'n' 't' 'e' 'n' 'c' 'e' '.'
' Total characters: 19
' Alphanumeric characters: 15
' Punctuation characters: 1
' Control Characters: 0
'
' The characters in the string "Has two tabs" are:
' 'H' 'a' 's' '0x0009' 't' 'w' 'o' '0x0009' 't' 'a' 'b' 's'
' Total characters: 12
' Alphanumeric characters: 10
' Punctuation characters: 0
' Control Characters: 2
'
' The characters in the string "Two
' new
' lines" are:
' 'T' 'w' 'o' '0x000A' 'n' 'e' 'w' '0x000A' 'l' 'i' 'n' 'e' 's'
' Total characters: 13
' Alphanumeric characters: 11
' Punctuation characters: 0
' Control Characters: 2
Comentarios
Tip
En lugar de llamar al GetEnumerator método para recuperar un CharEnumerator objeto que después se usa para enumerar una cadena, debe usar en su lugar la construcción de iteración del lenguaje. Entre los ejemplos se incluyen foreach en C#, for.. in en F#, y For Each in Visual Basic).
Este método permite iterar los caracteres individuales de una cadena. Por ejemplo, las instrucciones Visual Basic For Each, F# for..in y C# foreach invocan este método para devolver un objeto CharEnumerator que puede proporcionar acceso de solo lectura a los caracteres de esta instancia de cadena.