public Route Copy() { var newRouteList = new List <AbsNode>(RouteList.Count); newRouteList.AddRange(RouteList.Select(node => node.ShallowCopy())); var r = new Route(Problem) { RouteList = newRouteList, ServiceBeginingTimes = new List <double>(ServiceBeginingTimes) }; for (int i = 1; i < RouteList.Count - 1; ++i) { ((Customer)r.RouteList[i]).Route = r; } r.UpdateId(); return(r); }
public Route Copy() { var newRouteList = new List<AbsNode>(RouteList.Count); newRouteList.AddRange(RouteList.Select(node => node.ShallowCopy())); var r = new Route(Problem) { RouteList = newRouteList, ServiceBeginingTimes = new List<double>(ServiceBeginingTimes) }; for (int i = 1; i < RouteList.Count - 1; ++i) ((Customer) r.RouteList[i]).Route = r; r.UpdateId(); return r; }