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