在C#中,可以通過實現IEnumerable
接口和IEnumerator
接口來創建自定義迭代器。下面是一個簡單的示例,演示如何創建一個自定義迭代器:
using System;
using System.Collections;
using System.Collections.Generic;
public class CustomIterator : IEnumerable<int>
{
private List<int> numbers;
public CustomIterator(List<int> numbers)
{
this.numbers = numbers;
}
public IEnumerator<int> GetEnumerator()
{
foreach (int number in numbers)
{
yield return number;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
CustomIterator customIterator = new CustomIterator(numbers);
foreach (int number in customIterator)
{
Console.WriteLine(number);
}
}
}
在上面的示例中,CustomIterator
類實現了IEnumerable<int>
接口,并且實現了GetEnumerator
方法。在GetEnumerator
方法中,使用yield return
語句來返回迭代器中的元素。然后在Main
方法中,使用foreach
循環來迭代自定義迭代器,并打印每個元素的值。
通過這種方式,可以靈活地自定義迭代器,實現對各種數據結構的迭代操作。