private static void RecreateEdges(XElement graph, String nmsp, Dictionary <String, DelayGraphVertex> nodeIdToVertexMap, DelayGraph delayGraph) { // get the edges foreach (var edge in graph.Elements(nmsp + "edge")) { var source = nodeIdToVertexMap[(string)edge.Attribute("source")]; var sink = nodeIdToVertexMap[(string)edge.Attribute("target")]; int delay = 0; bool isFeedback = false; var isDelay = true; // this should only execute twice foreach (var data in edge.Elements()) { if (isDelay) { delay = (int)data; isDelay = false; continue; } isFeedback = (bool)data; } var newEdge = new DelayGraphEdge(source, sink, delay, isFeedback); delayGraph.AddEdge(newEdge); } }