C# --什么时候用迭代器(Iterator)?

本文探讨了C#中迭代器的使用,强调在集合数据量大、需要多种筛选或读取文件时,迭代器能提供性能优势和代码简洁性。通过实例展示了迭代器如何简化代码并提高安全性,建议开发者善用迭代器提升项目质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# --什么时候用迭代器(Iterator)?

1.前言

众所周知,完成一个软件功能,方法可能有很多种。从某种角度看,似乎只要能够实现这个功能,那么任务就完成了。刚开始写代码的时候,很多人都是这么想的,心里甚至还会自我鼓励,功能都搞定了,还管那么多干啥。
随着时间和水平的推进,学习到了一些新特性和方法,突然发现之前的代码还可以这样写。此时是选择回去重构之前的代码,还是不再追究、一晃而过?
必须重构。此文及后面一系列的文章的目的在于此,即学以致用,菜鸟的进阶肯定是从这里开始的。
C# 提供的很多特性,诸如:泛型属性异步方法Lambda表达式等等,如果不用起来,就一直放在那里了,似乎也没什么影响。但是只要开始尝一下甜头,就会对之前的代码嗤之以鼻。当初抓破脑袋写了三天的功能,还不算调试排Bug的时间,现在只需要半小时就能搞定,通常也会具有如下优点:

  • 简洁优雅
  • 性能更高
  • 耦合性低

今天先讲一讲迭代器。

2.迭代器简介

简单来说,迭代器的功能是对集合进行一些操作。
迭代器方法主要使用yield return 返回集合中的元素,一次一个。方法的返回类型定义为IEnumerable\IEnumerator,在返回后会记住当前位置,下次方法被调用时仍然从那个位置开始。
使用迭代器方法是通过foreach语句,
话不多说,看一个简单的例子,功能是打印一个装有日期的字符串集合列表。

static void Main()
{
    DaysOfTheWeek days = new DaysOfTheWeek();

    foreach (string day in days)
    {
        Console.Write(day + " 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值