String.GetEnumerator Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Récupère un objet qui peut itérer au sein des caractères individuels de cette chaîne.
public:
CharEnumerator ^ GetEnumerator();
public CharEnumerator GetEnumerator ();
member this.GetEnumerator : unit -> CharEnumerator
Public Function GetEnumerator () As CharEnumerator
Retours
Objet énumérateur.
Exemples
L’exemple suivant itère les caractères de plusieurs chaînes et affiche des informations sur leurs caractères individuels. Elle utilise la construction d’itération de langage plutôt qu’un appel à la GetEnumerator méthode.
using namespace System;
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;
for each (Char ch in phrase) {
Console::Write("'{0}' ", (! Char::IsControl(ch)) ? ch.ToString() :
"0x" + Convert::ToUInt16(ch).ToString("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);
}
int main()
{
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
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
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
Remarques
Conseil
Au lieu d’appeler la GetEnumerator méthode pour récupérer un CharEnumerator objet que vous utilisez ensuite pour énumérer une chaîne, vous devez plutôt utiliser la construction d’itération de votre langage (en C#, en C++/CLR et en Visual Basic). foreach en C#, for each en C++/CLR et for each dans Visual Basic).
Cette méthode vous permet d’itérer les caractères individuels d’une chaîne. par exemple, les For Each
instructions Visual Basic et C# foreach
appellent cette méthode pour retourner un CharEnumerator objet qui peut fournir un accès en lecture seule aux caractères de cette instance de chaîne.