CharEnumerator Klasse

Definition

Unterstützt das Durchlaufen eines String-Objekts und Lesen seiner einzelnen Zeichen.Supports iterating over a String object and reading its individual characters. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

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

Beispiele

Im folgenden Beispiel wird die- CharEnumerator Klasse verwendet, um die einzelnen Zeichen in einer Zeichenfolge aufzulisten.The following example uses the CharEnumerator class to enumerate the individual characters in a string. Sie instanziiert ein- CharEnumerator Objekt durch Aufrufen der- String.GetEnumerator Methode, wechselt von einem Zeichen zum nächsten, indem die MoveNext -Methode aufgerufen wird, und zeigt das aktuelle Zeichen an, indem der Wert der-Eigenschaft abgerufen wird Current .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

Beachten Sie jedoch, dass derselbe Vorgang mit foreach (in c#) oder (in Visual Basic) etwas intuitiver ausgeführt werden kann For Each , wie im folgenden Beispiel gezeigt.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

Hinweise

Ein CharEnumerator bietet schreibgeschützten Zugriff auf die Zeichen in einem Objekt, auf das verwiesen wird String .A CharEnumerator provides read-only access to the characters in a referenced String object. Beispielsweise ruft die foreach -Anweisung der Programmiersprachen Microsoft Visual Basic und c#, die die Elemente einer Auflistung durchlaufen, eine CharEnumerator aus einem-Objekt ab, String um die Zeichen in diesem Objekt zu durchlaufen.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.

Wichtig

Die- CharEnumerator Klasse listet einzelne 16-Bit- Char Instanzen auf.The CharEnumerator class enumerates individual 16-bit Char instances. Graphemes (d. h. ein Zeichen, gefolgt von einem oder mehreren einfügende Zeichen) oder Ersatz Zeichenpaare (d. h. Zeichen außerhalb der Unicode-Basis mehrsprachigen Ebene) als einzelne Zeichen werden nicht berücksichtigt.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. Verwenden Sie für einen Enumerator, der diese Zeichen Typen als einzelne Einheit behandelt, die- StringInfo Klasse.For an enumerator that handles these types of characters as a single unit, use the StringInfo class.

Es ist kein öffentlicher Konstruktor für vorhanden CharEnumerator .There is no public constructor for CharEnumerator. Rufen String Sie stattdessen die-Methode eines-Objekts GetEnumerator auf, um einen abzurufen CharEnumerator , der zum Verweisen auf die Zeichenfolge initialisiert wird.Instead, call a String object's GetEnumerator method to obtain a CharEnumerator that is initialized to reference the string.

Ein CharEnumerator verwaltet einen internen Index für die Zeichen in der Zeichenfolge, auf die CharEnumerator verwiesen wird.A CharEnumerator maintains an internal index to the characters in the string the CharEnumerator references. Der Status des Indexes ist ungültig, wenn er auf eine Zeichenposition logisch vor dem ersten oder nach dem letzten Zeichen in der Zeichenfolge verweist und gültig ist, wenn er auf ein Zeichen innerhalb der Zeichenfolge verweist.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. Der Index wird bis zu einer Position vor dem ersten Zeichen initialisiert, und wird auf eine Position hinter dem letzten Zeichen festgelegt, wenn die iterierung vollständig ist.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. Eine Ausnahme wird ausgelöst, wenn Sie versuchen, auf ein Zeichen zuzugreifen, während der Index ungültig ist.An exception is thrown if you attempt to access a character while the index is invalid.

Die- MoveNext Methode erhöht den Index um eins, sodass auf das erste und nachfolgende Zeichen wiederum zugegriffen wird.The MoveNext method increments the index by one, so the first and subsequent characters are accessed in turn. Die- Reset Methode legt den Index auf eine Position vor dem ersten Zeichen fest.The Reset method sets the index to a position logically before the first character. Die- Current Eigenschaft ruft das Zeichen ab, auf das derzeit vom Index verwiesen wird.The Current property retrieves the character currently referenced by index. Die- Clone Methode erstellt eine Kopie von CharEnumerator .The Clone method creates a copy of the CharEnumerator.

Hinweis

Mehrere unabhängige Instanzen von CharEnumerator in einem oder mehreren Threads können auf eine einzelne Instanz von zugreifen String .Several independent instances of CharEnumerator across one or more threads can have access to a single instance of String. Diese Klasse wird zur Unterstützung der- IEnumerator Schnittstelle implementiert.This class is implemented to support the IEnumerator interface. Weitere Informationen zur Verwendung eines Enumerators finden Sie im IEnumerator Thema.For more information regarding the use of an enumerator, see the IEnumerator topic.

Eigenschaften

Current

Ruft das Zeichen in der von diesem CharEnumerator-Objekt durchlaufenen Zeichenfolge ab, auf das zurzeit verwiesen wird.Gets the currently referenced character in the string enumerated by this CharEnumerator object.

Methoden

Clone()

Erstellt eine Kopie des aktuellen CharEnumerator-Objekts.Creates a copy of the current CharEnumerator object.

Dispose()

Gibt alle von der aktuellen Instanz der CharEnumerator-Klasse verwendeten Ressourcen frei.Releases all resources used by the current instance of the CharEnumerator class.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
MoveNext()

Inkrementiert den internen Index des aktuellen CharEnumerator-Objekts zum nächsten Zeichen der aufgelisteten Zeichenfolge.Increments the internal index of the current CharEnumerator object to the next character of the enumerated string.

Reset()

Initialisiert den Index auf eine Position, die sich logisch vor dem ersten Zeichen der aufgelisteten Zeichenfolge befindet.Initializes the index to a position logically before the first character of the enumerated string.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Gibt alle von der CharEnumerator-Klasse verwendeten Ressourcen frei.Releases all resources used by the CharEnumerator class.

IEnumerator.Current

Ruft das Zeichen in der von diesem CharEnumerator-Objekt durchlaufenen Zeichenfolge ab, auf das zurzeit verwiesen wird.Gets the currently referenced character in the string enumerated by this CharEnumerator object. Eine Beschreibung dieses Elements finden Sie unter Current.For a description of this member, see Current.

Gilt für:

Weitere Informationen