CharEnumerator CharEnumerator CharEnumerator CharEnumerator Class

Definición

Admite la iteración en un objeto String y la lectura de sus caracteres individuales.Supports iterating over a String object and reading its individual characters. Esta clase no puede heredarse.This class cannot be inherited.

public ref class CharEnumerator sealed : ICloneable, System::Collections::Generic::IEnumerator<char>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
type CharEnumerator = class
    interface IEnumerator
    interface ICloneable
    interface IEnumerator<char>
    interface IDisposable
Public NotInheritable Class CharEnumerator
Implements ICloneable, IEnumerator(Of Char)
Herencia
CharEnumeratorCharEnumeratorCharEnumeratorCharEnumerator
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se CharEnumerator usa la clase para enumerar los caracteres individuales de una cadena.The following example uses the CharEnumerator class to enumerate the individual characters in a string. Crea una instancia de CharEnumerator un objeto String.GetEnumerator llamando al método, se desplaza de un carácter a otro MoveNext llamando al método y muestra el carácter actual recuperando el valor de la Current propiedad.It instantiates a CharEnumerator object by calling the String.GetEnumerator method, moves from one character to the next by calling the MoveNext method, and displays the current character by retrieving the value of the Current property.

String ^ title = "A Tale of Two Cities";
CharEnumerator ^ chEnum = title->GetEnumerator();
int ctr = 1;
String ^ outputLine1 = nullptr;
String ^ outputLine2 = nullptr;
String ^ outputLine3 = nullptr; 

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
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
Dim title As String = "A Tale of Two Cities"
Dim chEnum As CharEnumerator = title.GetEnumerator()
Dim ctr As Integer = 1
Dim outputLine1, outputLine2, outputLine3 As String 

Do While chEnum.MoveNext()
   outputLine1 += CStr(iif(ctr < 10 Or ctr Mod 10 <> 0, "  ", CStr(ctr \ 10) + " ")) 
   outputLine2 += (ctr Mod 10)& " "
   outputLine3 += chEnum.Current & " "
   ctr += 1
Loop

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

Tenga en cuenta, sin embargo, que la misma operación se puede realizar de forma foreach algo más intuitiva mediante (en C#) o For Each (en Visual Basic), como se muestra en el ejemplo siguiente.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 = nullptr;
String ^ outputLine2 = nullptr;
String ^ outputLine3 = nullptr; 

for each (wchar_t 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
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
Dim title As String = "A Tale of Two Cities"
Dim ctr As Integer = 1
Dim outputLine1, outputLine2, outputLine3 As String 

For Each ch As Char In title
   outputLine1 += CStr(iif(ctr < 10 Or ctr Mod 10 <> 0, "  ", CStr(ctr \ 10) + " ")) 
   outputLine2 += (ctr Mod 10)& " "
   outputLine3 += ch & " "
   ctr += 1
Next

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

Un CharEnumerator proporciona acceso de solo lectura a los caracteres de un String objeto al que se hace referencia.A CharEnumerator provides read-only access to the characters in a referenced String object. Por ejemplo, la foreach instrucción de Microsoft Visual Basic y C# los lenguajes de programación, que recorre en iteración los elementos de una colección CharEnumerator , recupera String de un objeto para recorrer en iteración los caracteres. en ese objeto.For example, the foreach statement of the Microsoft Visual Basic and C# programming languages, which iterates through the elements of a collection, retrieves a CharEnumerator from a String object in order to iterate through the characters in that object.

Importante

La CharEnumerator clase enumera las instancias individuales de 16 Char bits.The CharEnumerator class enumerates individual 16-bit Char instances. No tiene en cuenta graphemes (es decir, un carácter seguido de uno o más caracteres combiding) o pares suplentes (es decir, caracteres situados fuera del plano básico multilingüe de Unicode) como caracteres individuales.It does not consider graphemes (that is, a character followed by one or more combiding characters) or surrogate pairs (that is, characters outside the Unicode Basic Multilingual Plane) as single characters. Para un enumerador que controla estos tipos de caracteres como una sola unidad, use StringInfo la clase.For an enumerator that handles these types of characters as a single unit, use the StringInfo class.

No hay ningún constructor público para CharEnumerator.There is no public constructor for CharEnumerator. En su lugar, llame String al método GetEnumerator de un objeto para CharEnumerator obtener un que se inicializa para hacer referencia a la cadena.Instead, call a String object's GetEnumerator method to obtain a CharEnumerator that is initialized to reference the string.

Un CharEnumerator mantiene un índice interno a los caracteres de la cadena a CharEnumerator las que hace referencia.A CharEnumerator maintains an internal index to the characters in the string the CharEnumerator references. El estado del índice no es válido cuando hace referencia a una posición de carácter lógicamente antes del primer carácter o después del último carácter de la cadena, y es válido cuando hace referencia a un carácter de la cadena.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. El índice se inicializa en una posición lógicamente antes del primer carácter y se establece en una posición después del último carácter cuando se completa la iteración.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. Se produce una excepción si intenta obtener acceso a un carácter mientras el índice no es válido.An exception is thrown if you attempt to access a character while the index is invalid.

El MoveNext método incrementa el índice en uno, por lo que a su vez se tiene acceso a los caracteres primero y posteriores.The MoveNext method increments the index by one, so the first and subsequent characters are accessed in turn. El Reset método establece el índice en una posición lógicamente antes del primer carácter.The Reset method sets the index to a position logically before the first character. La Current propiedad recupera el carácter al que se hace referencia actualmente mediante el índice.The Current property retrieves the character currently referenced by index. El Clone método crea una copia CharEnumeratorde.The Clone method creates a copy of the CharEnumerator.

Nota

Varias instancias independientes de CharEnumerator en uno o varios subprocesos pueden tener acceso a una sola Stringinstancia de.Several independent instances of CharEnumerator across one or more threads can have access to a single instance of String. Esta clase se implementa para admitir la IEnumerator interfaz.This class is implemented to support the IEnumerator interface. Para obtener más información sobre el uso de un enumerador, IEnumerator vea el tema.For more information regarding the use of an enumerator, see the IEnumerator topic.

Propiedades

Current Current Current Current

Obtiene el carácter al que se hace referencia actualmente en la cadena enumerada por este objeto CharEnumerator.Gets the currently referenced character in the string enumerated by this CharEnumerator object.

Métodos

Clone() Clone() Clone() Clone()

Crea una copia del objeto CharEnumerator actual.Creates a copy of the current CharEnumerator object.

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos usados por la instancia actual de la clase CharEnumerator.Releases all resources used by the current instance of the CharEnumerator class.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
MoveNext() MoveNext() MoveNext() MoveNext()

Incrementa el índice interno del objeto CharEnumerator actual hasta el siguiente carácter de la cadena enumerada.Increments the internal index of the current CharEnumerator object to the next character of the enumerated string.

Reset() Reset() Reset() Reset()

Inicializa el índice en una posición situada lógicamente delante del primer carácter de la cadena enumerada.Initializes the index to a position logically before the first character of the enumerated string.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Implementaciones de interfaz explícitas

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Libera todos los recursos que utiliza la clase CharEnumerator.Releases all resources used by the CharEnumerator class.

IEnumerator.Current IEnumerator.Current IEnumerator.Current IEnumerator.Current

Obtiene el carácter al que se hace referencia actualmente en la cadena enumerada por este objeto CharEnumerator.Gets the currently referenced character in the string enumerated by this CharEnumerator object. Para obtener una descripción de este miembro, vea Current.For a description of this member, see Current.

Se aplica a

Consulte también: