diff options
Diffstat (limited to 'src/CS340.TSP/Tour.cs')
-rw-r--r-- | src/CS340.TSP/Tour.cs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/CS340.TSP/Tour.cs b/src/CS340.TSP/Tour.cs index e6e5d40..d90ab7e 100644 --- a/src/CS340.TSP/Tour.cs +++ b/src/CS340.TSP/Tour.cs @@ -19,11 +19,16 @@ namespace TSP // indexer: get vertex where vertex.Id == index public City this[int index] { get => Cities.Find(vertex => vertex.Id == index); } - public Tour(List<Vertex> cities) => Cities.AddRange(cities.Select(city => new City(city))); - public Tour(List<City> cities) => Cities.AddRange(cities.Select(city => new City(city))); - public Tour() => Cities = new List<City>(); + public Tour() => + Cities = new List<City>(); + public Tour(Tour tour) : this(tour.Cities) { } + public Tour(List<City> cities) => + Cities.AddRange(cities.Select(city => new City(city))); + + public Tour(List<Vertex> cities, List<Coordinate> coordinates) => + Cities.AddRange(cities.Zip(coordinates, (city, coord) => new City(city, coord))); public override string ToString() => $"tour: {String.Join(" -> ", Cities.Select(city => city.Id))}\n" + |