📜  C#| CharEnumerator.Clone()方法

📅  最后修改于: 2021-05-29 23:37:18             🧑  作者: Mango

CharEnumerator.Clone方法用于创建当前CharEnumerator对象的副本。这对于在迭代String对象时保存当前状态很有用。

句法:

public object Clone ();

返回值:该方法返回一个Object,它是当前CharEnumerator对象与CharEnumerator对象的当前状态的副本

下面的程序说明了CharEnumerator.Clone()方法的用法:

范例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);
    }
}
输出:
The Sun rises in the East,
sets in the West.

范例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();
        }
    }
}
输出:
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

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.charenumerator.clone?view=netframework-4.7.2