C# | CharEnumerator.Clone() Method
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:
// 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:
// 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:
- https://docs.microsoft.com/en-us/dotnet/api/system.charenumerator.clone?view=netframework-4.7.2