如何深入研究所有可能的链接对象?

时间:2017-01-29 21:15:00

标签: c# linq list loops

我有些头疼要想弄清楚我需要以编程方式做些什么。 这是我班级的基本代码。

STATICFILES_FINDERS

我在Unity中使用此代码,所以我真的不知道 Wire 实例的Initialize()方法的执行顺序。

因此,创建一些Wire实例会构建一个层次结构,其中所有连接的线和子连接线都可以通过循环访问。

我遇到的问题是我想要一个Wire实例,循环认为所有可能的连接线和子连接线,但我不知道我有多少个Wire实例所以不可能用叠加的foreach循环“深度”迭代! (foreac(){foreach(){...?}})

我将如何以良好的方式实现这一目标?

下面是什么是电线的参考图片。 Wires

1 个答案:

答案 0 :(得分:1)

如果电线只连接一次,你可以这样做。

public class Wire
{
    public List<Wire> connectedWires = new List<Wire>();

    //Example var we want to set
    public int i = 0;

    public void Initialize()
    {
    //Initialization code
    //Here we get all connected wires the actual one (this) and we put it in   connected wire
    }
    public void LoopThroughWires()
    {
        //Do something with your wires or whatever
        i++;
        //Propagate to childs
        foreach(Wire wire on connectedWires)
        {
            wire.LoopThroughWires();
        }
    }
}

请注意,同一线路的多个连接最终会多次调用该方法。

您可以使用visited标记来解决该问题。