在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循环来迭代自定义迭代器,并打印每个元素的值。
通过这种方式,可以灵活地自定义迭代器,实现对各种数据结构的迭代操作。