c# - 为什么必须实现 IEnumerator<T> GetEnumerator() 和 GetEnumerator()?

标签 c# iterator ienumerable ienumerator

致力于实现 IEnumerable 接口(interface)。 我实际上找到了两个需要实现的方法:

public IEnumerator<Item> GetEnumerator()
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()

不确定为什么我需要实现这两种方法(看起来很相似)。谁能给我解释一下?

最佳答案

IEnumerable<T>延伸IEnumerable ,因此您需要提供该方法的通用和非通用版本。

一个常见的解决方案是让非通用解决方案简单地调用通用解决方案,因为 IEnumerator<T>还扩展了 IEnumerator .

关于c# - 为什么必须实现 IEnumerator<T> GetEnumerator() 和 GetEnumerator()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20710912/

相关文章:

c# - LINQ:在 GridView 中查找所有选中的复选框

c# - ASP.NET 核心 UseExceptionHandler : Where's the exception?

c# - 我应该返回 IEnumerable 还是 IList?

c# - Linq:使用不同的 IEnumerable<bool> 过滤列表

c# - 将数组对转换为数组对(如果可能,使用 LINQ)

c# - 如何在 C# 桌面应用程序中避免没有存储过程的 SQL 注入(inject)

c# - 如何使用 Process.Start() 通过网络服务在服务器端执行程序?

c# - 如何在 OpenCvSharp 库中打印矩阵值

JAVA - 为树数据结构创建一个迭代器,实现迭代器,并获取头节点

c++ - "No match for operator-"简单迭代器差异错误