CharEnumerator Třída

Definice

Podporuje iteraci nad String objektem a čtení jeho jednotlivých znaků.Supports iterating over a String object and reading its individual characters. Tuto třídu nelze zdědit.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
Dědičnost
CharEnumerator
Atributy
Implementuje

Příklady

Následující příklad používá CharEnumerator třídu k zobrazení výčtu jednotlivých znaků v řetězci.The following example uses the CharEnumerator class to enumerate the individual characters in a string. Vytvoří instanci CharEnumerator objektu voláním String.GetEnumerator metody, přesune jeden znak na další voláním MoveNext metody a zobrazí aktuální znak načtením hodnoty Current Vlastnosti.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

Všimněte si však, že stejnou operaci lze provést poněkud intuitivnější pomocí foreach (v jazyce C#) nebo For Each (v Visual Basic), jak ukazuje následující příklad.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

Poznámky

CharEnumeratorPoskytuje přístup jen pro čtení ke znakům v odkazovaném String objektu.A CharEnumerator provides read-only access to the characters in a referenced String object. Například foreach příkazy programovacích jazyků Microsoft Visual Basic a C#, které procházejí prvky kolekce, načte CharEnumerator objekt z objektu, aby String bylo možné iterovat znaky tohoto objektu.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.

Důležité

CharEnumeratorTřída vytváří výčet jednotlivých 16bitových Char instancí.The CharEnumerator class enumerates individual 16-bit Char instances. Nebere v úvahu graphemes (to znamená znak následovaný jedním nebo více combiding znaky) nebo náhradní páry (tj. znaky mimo vícejazyčné roviny Unicode Basic) jako jednotlivé znaky.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. Pro enumerátor, který zpracovává tyto typy znaků jako jednu jednotku, použijte StringInfo třídu.For an enumerator that handles these types of characters as a single unit, use the StringInfo class.

Pro není k dispozici žádný veřejný konstruktor CharEnumerator .There is no public constructor for CharEnumerator. Místo toho zavolejte String GetEnumerator metodu objektu pro získání typu CharEnumerator , který je inicializován pro odkazování na řetězec.Instead, call a String object's GetEnumerator method to obtain a CharEnumerator that is initialized to reference the string.

CharEnumeratorUdržuje interní index ke znakům v řetězci, na které CharEnumerator odkazuje.A CharEnumerator maintains an internal index to the characters in the string the CharEnumerator references. Stav indexu je neplatný, pokud odkazuje na pozici logického znaku před prvním znakem nebo za posledním znakem v řetězci a platný při odkazování znaku v rámci řetězce.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. Index je inicializován na pozici logicky před prvním znakem a je nastaven na pozici za posledním znakem po dokončení iterace.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. Výjimka je vyvolána, pokud se pokusíte o přístup k znaku, zatímco index je neplatný.An exception is thrown if you attempt to access a character while the index is invalid.

MoveNextMetoda zvýší index o jednu, takže se k prvnímu a dalšímu znaku dostanete.The MoveNext method increments the index by one, so the first and subsequent characters are accessed in turn. ResetMetoda nastaví index na pozici logicky před první znak.The Reset method sets the index to a position logically before the first character. CurrentVlastnost načítá znak, na který se aktuálně odkazuje index.The Current property retrieves the character currently referenced by index. CloneMetoda vytvoří kopii CharEnumerator .The Clone method creates a copy of the CharEnumerator.

Poznámka

Několik nezávislých instancí CharEnumerator v jednom nebo více vláknech může mít přístup k jediné instanci String .Several independent instances of CharEnumerator across one or more threads can have access to a single instance of String. Tato třída je implementována pro podporu IEnumerator rozhraní.This class is implemented to support the IEnumerator interface. Další informace o použití enumerátoru naleznete v IEnumerator tématu.For more information regarding the use of an enumerator, see the IEnumerator topic.

Vlastnosti

Current

Získá aktuálně odkazovaný znak v řetězci, který je uveden v tomto CharEnumerator objektu.Gets the currently referenced character in the string enumerated by this CharEnumerator object.

Metody

Clone()

Vytvoří kopii aktuálního CharEnumerator objektu.Creates a copy of the current CharEnumerator object.

Dispose()

Uvolní všechny prostředky používané aktuální instancí CharEnumerator třídy.Releases all resources used by the current instance of the CharEnumerator class.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
MoveNext()

Zvýší vnitřní index aktuálního CharEnumerator objektu na další znak výčtového řetězce.Increments the internal index of the current CharEnumerator object to the next character of the enumerated string.

Reset()

Inicializuje index na pozici logicky před prvním znakem výčtového řetězce.Initializes the index to a position logically before the first character of the enumerated string.

ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní všechny prostředky používané CharEnumerator třídou.Releases all resources used by the CharEnumerator class.

IEnumerator.Current

Získá aktuálně odkazovaný znak v řetězci, který je uveden v tomto CharEnumerator objektu.Gets the currently referenced character in the string enumerated by this CharEnumerator object. Popis tohoto člena naleznete v tématu Current .For a description of this member, see Current.

Platí pro

Viz také