Open In App

C# | CharEnumerator.Clone() Method

Last Updated : 30 Apr, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
CharEnumerator.Clone Method is used to create a copy of the current CharEnumerator object. This is useful for saving the current state while iterating through a String object. Syntax:
public object Clone ();
Return Value: This method returns an Object which is a copy of the current CharEnumerator object with the current state of the CharEnumerator object. Below are the programs to illustrate the use of CharEnumerator.Clone() Method: Example 1: csharp
// C# program to illustrate the
// CharEnumerator.Clone Method
using System;

class GFG {

    // Driver code
    public static void Main()
    {
        // Initialize a string object
        string str = "The Sun rises in the East,sets in the West.";

        // Instantiate a CharEnumerator object
        CharEnumerator chEnum = str.GetEnumerator();

        while (chEnum.MoveNext()) 
        {
            // Printing the characters
            Console.Write(chEnum.Current);

            // Break when a space is encountered
            if (chEnum.Current == ',') 
            {
                Console.WriteLine();
                break;
            }
        }

        // Instantiate a copy of CharEnumerator
        // object with the current state
        CharEnumerator chEnumCopy = (CharEnumerator)chEnum.Clone();

        // Printing the rest of the characters
        while (chEnumCopy.MoveNext())
            Console.Write(chEnumCopy.Current);
    }
}
Output:
The Sun rises in the East,
sets in the West.
Example 2: csharp
// C# program to illustrate the
// CharEnumerator.Clone Method
using System;

class GFG {

    // Driver code
    public static void Main()
    {
        // Initialize a string object
        string str = "1234567";

        // Instantiate a CharEnumerator object
        CharEnumerator chEnum = str.GetEnumerator();

        while (chEnum.MoveNext())
        {
            // Print current character
            Console.Write(chEnum.Current + " ");

            // Instantiate a copy of CharEnumerator 
            // object with current state
            CharEnumerator chEnumCopy = (CharEnumerator)chEnum.Clone();

            // Printing all characters 
            // after the current position
            while (chEnumCopy.MoveNext())
                Console.Write(chEnumCopy.Current + " ");

            Console.WriteLine();
        }
    }
}
Output:
1 2 3 4 5 6 7 
2 3 4 5 6 7 
3 4 5 6 7 
4 5 6 7 
5 6 7 
6 7 
7
Reference:

Next Article

Similar Reads