public static freeGraph GetGraphSection(this freeGraph source, List <String> node_names, String name, String description = "") { var nodes = source.GetNodes(node_names); freeGraph output = new freeGraph() { name = name, description = description }; foreach (var node in nodes) { output.AddNode(node.name, node.weight, node.type); } foreach (var node in nodes) { var links = source.GetLinks(node.name, true, false, 1); foreach (var link in links) { if (node_names.Contains(link.nodeB.name)) { output.AddLink(node.name, link.nodeB.name, link.linkBase.weight, link.linkBase.type); } } } return(output); }