public void GenerateDelivery(StreetSpecification specification) { DeliveryRoute = specification.Houses; var previousWasEven = false; for (var i = 0; i < specification.Houses.Count; i++) { if (specification.Houses[i] % 2 == 0) { // if we have just started we don't want to count our starting road as crossing over if (!previousWasEven && i != 0) { CrossingRoadCount++; } previousWasEven = true; } else { // if we have just started we don't want to count our starting road as crossing over if (previousWasEven && i != 0) { CrossingRoadCount++; } previousWasEven = false; } } }
public void GenerateDelivery(StreetSpecification specification) { CrossingRoadCount = 1; var deliveryRoute = specification.LeftHouses.ToList(); deliveryRoute.AddRange(specification.RightHouses.OrderByDescending(h => h)); DeliveryRoute = deliveryRoute; }