C# 实现 IEnumerable 接口的 GetEnumerator() 方法通常使用 yield 关键字来实现延迟执行的迭代器。下面是一个示例代码:

public IEnumerator<int> GetEnumerator()
{
    for (int i = 5; i < m_table.RowCount; i++)
    {
        yield return i;
    }
}

虽然这段代码乍看起来没有问题,但需要注意以下几点:

  1. 方法声明: 需要将该方法声明为 public IEnumerator<int> GetEnumerator(),因为 IEnumerable<int> 接口的 GetEnumerator 方法返回的是 IEnumerator<int> 类型的迭代器。

  2. yield 关键字: 使用 yield 关键字,该方法会返回一个延迟执行的迭代器,只有在遍历时才会执行其中的代码。

  3. 循环起始值: 注意循环的起始值需要是 5,因为在这个方法中只返回了从 5 开始的迭代器。

  4. 迭代器失效: 如果在遍历时对集合进行了修改,可能会导致迭代器失效,因此需要谨慎使用。

总结:

通过正确理解 IEnumerable<int> 接口的实现细节,以及 yield 关键字的使用,可以有效地实现延迟执行的迭代器,并避免在遍历过程中出现问题。

C# IEnumerable<int> 接口实现:GetEnumerator() 方法详解

原文地址: https://www.cveoy.top/t/topic/mIxe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录