我有一个通用的树类,我想实现IEnumerable接口。我在stackoverflow上找到的之前的问题与我的问题有点不同。我知道我正在做一些错误的事情,但我不知道是什么。这是我的代码:
class Node<T>: IEnumerable<T>
{
private T data;
private LinkedList<Node<T>> children;
public Node(T data)
{
this.data = data;
children = new LinkedList<Node<T>>();
}
public void AddChildNode(Node<T> node)
{
children.AddFirst(node);
}
public void MyTraverse(Node<T> node, List<T> visited)
{
visited.Add(node.data);
foreach (Node<T> kid in node.children)
MyTraverse(kid, visited);
}
public IEnumerator<T> GetEnumerator()
{
return children.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
在函数GetEnumerator()中,我遇到了一个转换错误,不知道该如何修复。有没有人可以帮我?
return children.Select(node => node.data);
但我怀疑这不会给你想要的结果。 - Lasse V. Karlsen