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

c#
866
2024/6/24 4:35:21
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 解析C#静态变量在Web应用中的使用模式