与使用Queue相比,将IEnumerator / IEnumerable实现到自定义Queue类中

问题描述

这里是OOP的新手。 我只需要做一个练习,即必须用C#创建一个自定义类,在作业Todo中,需要实现IENumerable和IENumerator接口,并为我的自定义类类型对象创建一个自定义队列。>

虽然我在解决问题上没有任何问题,但我仍然不了解此用法。与其编写太多代码来实现自定义队列,不如不使用C#框架中已经存在的“队列”呢?这样做有什么性能/优化优势吗?

因此,使用MyCustomObjectQueue而不是使用Queue 有什么好处?

解决方法

如评论中所述,这是使您熟悉概念的一种练习。在现实世界中,您几乎总是会使用现有的队列实现。

但是练习并非没有意义。知道如何实现IEnumerable非常有价值。 IEnumerator少了一点,因为您可以使用iterator block来让编译器为您完成。

该框架中的集合是为常规用法而设计的,如果您有一些特殊的用法模式,有时可以使用自己的变体,但这很少见。

根据我的经验,实现集合的最常见情况是包装现有集合以添加一些额外的功能,或者实现未提供的集合,例如环形缓冲区或堆。