public bool MoveNext()
{
if (_current == null) _current = this;
if (_current.Nodes.Count > 0)
{
_current = _current.Nodes[0];
return true;
}
var parentNode = _current.Parent;
while (parentNode != null && _current._id != this._id)
{
if (_current.Index + 1 > parentNode.Nodes.Count)
{
_current = parentNode;
parentNode = _current.Parent;
}
else
{
_current = parentNode.Nodes[_current.Index];
return true;
}
}
return false;
}
public void Reset()