通过四叉树儿童进行迭代

时间:2013-08-03 00:57:02

标签: c# recursion xna

我想以递归方式检查四叉树中所有根节点的子节点。

下面的代码会导致返回所有子节点,但是在通过它时可能无法将元素添加到集合中(遗憾的是)

foreach (QuadTree tree in trees)
        {
            if (tree.Children.Count != 0)
            {
                foreach(QuadTree child in tree.Children)
                {
                    trees.Add(child);
                }
            }
        }

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

谢谢大家,使用索引只是添加到列表的末尾,我想出了这个。

       int max = trees.Count;
        for (int i = 0; i < max; i++)
        {
            QuadTree tree = trees[i];
            if (tree.Children.Count != 0)
            {
                foreach(QuadTree child in tree.Children)
                {
                    trees.Add(child);
                }
            }
            max = trees.Count;
        }