实现IEnumerable <t>数据结构</t>

时间:2012-02-13 00:50:08

标签: c# data-structures ienumerable

我遇到了以下实现二叉树的代码。为了促进foreach,IEnumerable已实施。这是使foreach工作的最简单方法吗?我不明白为什么需要两个GetEnumerator()函数。

public class BinaryTree<T> : IEnumerable<T>
{
 ..   
        public IEnumerator<T> InOrderTraversal()
        {
            ...
            yield return curr.Value;    
            ...         
        }

        public IEnumerator<T> GetEnumerator()
        {
            return InOrderTraversal();
        }


        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
}

1 个答案:

答案 0 :(得分:3)

一个返回IEnumerator<T>其他返回IEnumerator。这样,在.NET中引入泛型之前编写的遗留代码仍可以使用此数据结构。