public double GetVisitDistance(Visit visit1, Visit visit2)
        {
            // Get distances of visit1
            int           indexVisit1     = visitIds.IndexOf(visit1.GetId());
            VisitDistance visit1Distances = visitDistances[indexVisit1];

            // Find visit2 in distances visit1
            return(visit1Distances.GetDistance(visit2));
        }
        private void findDistances()
        {
            List <double> depotDistances = new List <double>();
            List <int>    visitIds       = new List <int>();

            foreach (Visit visit in visits)
            {
                // Get x and y for visit
                int xCoordinate = visit.GetX();
                int yCoordinate = visit.GetY();

                // Set distance to depot for visit
                int xDifferenceDepot = xCoordinate - depot.GetX();
                int yDifferenceDepot = yCoordinate - depot.GetY();
                depotDistances.Add(Math.Sqrt(xDifferenceDepot * xDifferenceDepot + yDifferenceDepot * yDifferenceDepot));

                // Set distance to other visits for current visit
                List <double> distances = new List <double>();
                List <int>    ids       = new List <int>();
                foreach (Visit otherVisit in visits)
                {
                    int    xDifferenceVisits = xCoordinate - otherVisit.GetX();
                    int    yDifferenceVisits = yCoordinate - otherVisit.GetY();
                    double distance          = Math.Sqrt(xDifferenceVisits * xDifferenceVisits + yDifferenceVisits * yDifferenceVisits);
                    distances.Add(distance);

                    if (distance > maxDistance)
                    {
                        maxDistance = distance;
                    }

                    ids.Add(otherVisit.GetId());
                }
                visitDistances.Add(new VisitDistance(visit.GetId(), ids, distances));
                visitIds.Add(visit.GetId());
            }
            distancesFromDepot = new VisitDistance(0, visitIds, depotDistances);
        }