迭代器
迭代器返回的是一个枚举器
代码
static void Main(string[] args)
{
MyClass myClass = new MyClass();
foreach (string item in myClass)
{
Console.WriteLine($"{item}");
}
Console.ReadLine();
}
}
class MyClass
{
public IEnumerator<string> GetEnumerator()
{
return BlackAndWhite();
}
//利用迭代器返回是一个枚举器。
public IEnumerator<string> BlackAndWhite()
{
yield return "black";
yield return "gray";
yield return "white";
}
}
示例2用迭代器创建一个可枚举体
static void Main(string[] args)
{
MyClass myClass = new MyClass();
foreach (string item in myClass.BlackAndWhite())//不是可枚举类的时候,可以使用这个方式循环。
{
Console.WriteLine($"{item}");
}
foreach (string item in myClass)
{
Console.WriteLine($"{item}");
}
Console.ReadLine();
}
}
class MyClass
{
public IEnumerator<string> GetEnumerator()//当这个没有的时候,不是可枚举类。
{
IEnumerable<string> myEnumerator = BlackAndWhite();
return myEnumerator.GetEnumerator();
}
public IEnumerable<string> BlackAndWhite()
{
yield return "black";
yield return "gray";
yield return "white";
}
}

浙公网安备 33010602011771号