Lire en anglais

Partager via


CharEnumerator Classe

Définition

Prend en charge l’itération sur un objet String et la lecture de ses différents caractères. Cette classe ne peut pas être héritée.

C#
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
C#
[System.Serializable]
public sealed class CharEnumerator : ICloneable, System.Collections.IEnumerator
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
Héritage
CharEnumerator
Attributs
Implémente

Exemples

L’exemple suivant utilise la CharEnumerator classe pour énumérer les caractères individuels d’une chaîne. Il instancie un CharEnumerator objet en appelant la String.GetEnumerator méthode, passe d’un caractère à l’autre en appelant la MoveNext méthode et affiche le caractère actuel en récupérant la valeur de la Current propriété.

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

Notez toutefois que la même opération peut être effectuée de manière un peu plus intuitive en utilisant foreach (en C#) ou For Each (en Visual Basic), comme le montre l’exemple suivant.

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

Remarques

Un CharEnumerator fournit un accès en lecture seule aux caractères d’un objet référencé String . Par exemple, l’instruction foreach du Microsoft langages de programmation Visual Basic et C#, qui itère à travers les éléments d’une collection, récupère un à partir d’un CharEnumeratorString objet afin d’itérer à travers les caractères de cet objet.

Important

La CharEnumerator classe énumère des instances 16 bits Char individuelles. Il ne considère pas les graphèmes (c’est-à-dire un caractère suivi d’un ou plusieurs caractères combidants) ou les paires de substitution (c’est-à-dire, des caractères en dehors du plan multilingue de base Unicode) comme des caractères uniques. Pour un énumérateur qui gère ces types de caractères en tant qu’unité unique, utilisez la StringInfo classe .

Il n’existe aucun constructeur public pour CharEnumerator. Au lieu de cela, appelez la méthode d’un StringGetEnumerator objet pour obtenir un CharEnumerator qui est initialisé pour référencer la chaîne.

A CharEnumerator conserve un index interne pour les caractères dans la chaîne référencée CharEnumerator . L’état de l’index n’est pas valide lorsqu’il fait référence à une position de caractère de manière logique avant le premier caractère ou après le dernier caractère de la chaîne, et valide lorsqu’il fait référence à un caractère dans la chaîne. L’index est initialisé à une position logiquement avant le premier caractère et est défini sur une position après le dernier caractère lorsque l’itération est terminée. Une exception est levée si vous tentez d’accéder à un caractère alors que l’index n’est pas valide.

La MoveNext méthode incrémente l’index d’un, de sorte que les premiers caractères et les suivants sont accessibles à leur tour. La Reset méthode définit l’index sur une position logique avant le premier caractère. La Current propriété récupère le caractère actuellement référencé par index. La Clone méthode crée une copie de .CharEnumerator

Note

Plusieurs instances indépendantes d’un CharEnumerator ou plusieurs threads peuvent avoir accès à une seule instance de String. Cette classe est implémentée pour prendre en charge l’interface IEnumerator . Pour plus d’informations sur l’utilisation d’un énumérateur, consultez la IEnumerator rubrique .

Propriétés

Current

Obtient le caractère actuellement référencé dans la chaîne énumérée par cet objet CharEnumerator.

Méthodes

Clone()

Crée une copie de l'objet CharEnumerator en cours.

Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe CharEnumerator.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MoveNext()

Incrémente l'index interne de l'objet CharEnumerator actuel jusqu'au caractère suivant de la chaîne énumérée.

Reset()

Initialise logiquement l'index à une position figurant avant le premier caractère de la chaîne énumérée.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Libère toutes les ressources utilisées par la classe CharEnumerator.

IEnumerator.Current

Obtient le caractère actuellement référencé dans la chaîne énumérée par cet objet CharEnumerator. Pour obtenir une description de ce membre, consultez Current.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.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
.NET Standard 2.0, 2.1

Voir aussi