String.GetEnumerator Methode

Definition

Ruft ein Objekt ab, das die einzelnen Zeichen in dieser Zeichenfolge durchlaufen kann.

public:
 CharEnumerator ^ GetEnumerator();
public CharEnumerator GetEnumerator();
member this.GetEnumerator : unit -> CharEnumerator
Public Function GetEnumerator () As CharEnumerator

Gibt zurück

Ein Enumeratorobjekt.

Beispiele

Im folgenden Beispiel werden die Zeichen in mehreren Zeichenfolgen durchläuft und Informationen zu den einzelnen Zeichen angezeigt. Es verwendet das Sprachen iterationskonstrukt anstelle eines Aufrufs der GetEnumerator Methode.

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
open System

let enumerateAndDisplay phrase =
    printfn $"The characters in the string \"{phrase}\" are:"

    let mutable CharCount = 0
    let mutable controlChars = 0
    let mutable alphanumeric = 0
    let mutable punctuation = 0

    for ch in phrase do
        if Char.IsControl ch then
            printf $"{ch}"
        else
            printf $"0x{uint16 ch:X4}"

        if Char.IsLetterOrDigit ch then
            alphanumeric <- alphanumeric + 1
        elif Char.IsControl ch then
            controlChars <- controlChars + 1
        elif Char.IsPunctuation ch then
            punctuation <- punctuation + 1             
            CharCount <- CharCount + 1

    printfn $"\n   Total characters:        {CharCount,3}"
    printfn $"   Alphanumeric characters: {alphanumeric,3}"
    printfn $"   Punctuation characters:  {punctuation,3}"
    printfn $"   Control Characters:      {controlChars,3}\n"

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
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

Hinweise

Tip

Anstatt die GetEnumerator Methode zum Abrufen eines CharEnumerator Objekts abzurufen, das Sie dann zum Aufzählen einer Zeichenfolge verwenden, sollten Sie stattdessen das Iterationskonstrukt Ihrer Sprache verwenden. Beispiele sind foreach in C#, for.. in in F# und For Each in Visual Basic).

Mit dieser Methode können Sie die einzelnen Zeichen in einer Zeichenfolge durchlaufen. Beispielsweise rufen die Visual Basic For Each, den F#-ausdruck for..in und C# foreach-Anweisungen diese Methode auf, um ein CharEnumerator-Objekt zurückzugeben, das schreibgeschützten Zugriff auf die Zeichen in dieser Zeichenfolgeninstanz ermöglichen kann.

Gilt für:

Weitere Informationen