.NET集合:IEnumerable、IEnumerator、数据库查询与yield关键字的深入探究
1. IEnumerable与IEnumerator的比较
在.NET编程中, IEnumerable 和 IEnumerator 接口都可用于迭代操作,但方式有所不同。
IEnumerable 类型的对象知道如何遍历其所持有的集合,无论其内部结构如何。它有一个关键方法 GetEnumerator() ,该方法返回一个实现 IEnumerable 接口的类的实例。通常使用 foreach 循环进行迭代,但它在迭代时不会记录位置。
IEnumerator 类型的对象声明了两个方法: MoveNext() 和 Reset() ,还有一个属性 Current 用于获取正在枚举的列表中的当前项。 MoveNext() 方法移动到集合中的下一条记录,并返回一个布尔值表示集合是否结束。 Reset() 方法将位置重置到集合的第一项。 Current 属性通过实现 IEnumerable 接口的对象调用,返回集合中的当前元素。枚举器会记住其当前位置,迭代时使用 while 循环。
为了比较这两种枚举方法的速度,我们可以按照以下步骤操作: <
超级会员免费看
订阅专栏 解锁全文
765

被折叠的 条评论
为什么被折叠?



