public void RemoveAllIncomingLinks(DirectedGraph parent) { var thisIndex = parent.GetNodeIndex(connectableItem); // remove the matching outgoing links first for (var targetSocket = 0; targetSocket < connectableItem.NumInputs(); ++targetSocket) { foreach (var link in incomingLinks) { parent.Nodes[link.start].RemoveOutgoingLinksTo(thisIndex, targetSocket); } } // then wipe out the incoming links incomingLinks = new List <Link>(); }