public static void BuildConnectedOutSubGraph <TVertex, TEdge>( this IVertexAndEdgeListGraph <TVertex, TEdge> graph, IMutableVertexAndEdgeListGraph <TVertex, TEdge> subGraph, IEnumerable <TVertex> entries, Func <TVertex, TVertex, TEdge> edgeFactory) where TEdge : IEdge <TVertex> { var reachable = graph.FindReachable(entries); var neededEdges = graph.GetAllEdges(reachable).ToList(); subGraph.AddVerticesAndEdgeRange(neededEdges); }