yield c# 实现自定义迭代器技巧

   2024-10-06 7700
核心提示:在C#中,可以通过实现IEnumerable接口和IEnumerator接口来创建自定义迭代器。下面是一个简单的示例,演示如何创建一个自定义迭代

在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循环来迭代自定义迭代器,并打印每个元素的值。

通过这种方式,可以灵活地自定义迭代器,实现对各种数据结构的迭代操作。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号