如何使用generics在C#中实现IEnumerable

发布于 2025-01-20 10:15:02 字数 839 浏览 2 评论 0原文

我的代码具有一个迭代器内类,该类从Ienumerator接口和向量外部类继承,该类从Ienumerable且可显着的接口继承。

public class Vector<T> : IEnumerable<T> where T : IComparable<T>

我无法正确实现iEnumerator ienumeration.getEnumerator()和ienumerator ienumerable.getEnumerator()方法。这就是我到目前为止的

IEnumerator<T> IEnumerable<T>.GetEnumerator()
    {
        //Iterator iterator = new Iterator(this);
        //return iterator;
        return new Iterator(this);
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        foreach(T item in this)
        {
            yield return item;
        }
    }

getEnumerator方法应将迭代器类和向量类连接的 迭代器类具有遵循方法

  1. current()

  2. movenext()

  3. reset() 和迭代器构造函数

    私人向量_vector; 公共迭代器(向量矢量) { _vector = vector; }

My code has an iterator inner class which inherits from IEnumerator interface and Vector outer class which inherits from IEnumerable and IComparable interfaces.

public class Vector<T> : IEnumerable<T> where T : IComparable<T>

I am unable to implement IEnumerator IEnumerable.GetEnumerator() and IEnumerator IEnumerable.GetEnumerator() methods properly. This is what I have so far

IEnumerator<T> IEnumerable<T>.GetEnumerator()
    {
        //Iterator iterator = new Iterator(this);
        //return iterator;
        return new Iterator(this);
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        foreach(T item in this)
        {
            yield return item;
        }
    }

The getEnumerator method should connect the iterator class and the vector class
The iterator class has follow methods

  1. Current()

  2. MoveNext()

  3. Reset()
    and an Iterator constructor

    private Vector _vector;
    public Iterator(Vector vector)
    {
    _vector = vector;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文