/// <summary> /// Метод добавления полученной карточки в коллекцию sortingTravelCards, и последующего удаления ее из коллекции _travelCard. /// </summary> public void AddAndRemoveMethod(TravelCard tempCard) { if (tempCard == null) { throw new ArgumentNullException(); } sortingTravelCards.Add(tempCard); _travelCards.Remove(tempCard); }
/// <summary> /// Метод сортировки по уникальному значению Departure. /// Карточка, содержащая уникальный Departure, становится первой в коллекции. /// </summary> public List <TravelCard> FirstDepertureSorting(string uniqueDeparture) { tempCard = _travelCards.Single(c => c.Departure == uniqueDeparture); AddAndRemoveMethod(tempCard); for (int i = 0; i < cardsCount - 1; i++) { tempCard = _travelCards.First(d => d.Departure == sortingTravelCards.Last().Arrival); AddAndRemoveMethod(tempCard); } return(sortingTravelCards); }
/// <summary> /// Метод сортировки замкнутой коллекции карточек путешествия. /// </summary> public List <TravelCard> ClosetChain() { tempCard = _travelCards.First(); AddAndRemoveMethod(tempCard); for (int i = 0; i < cardsCount - 1; i++) { tempCard = _travelCards.First(d => d.Departure == sortingTravelCards.Last().Arrival); AddAndRemoveMethod(tempCard); } return(sortingTravelCards); }
/// <summary> /// Метод сортировки по уникальному значению Arrival. /// Карточка, содержащая уникальный Arrival, после метода Reverse() становится последней в коллекции. /// </summary> public List <TravelCard> LastArrivalSorting(string uniqueArrival) { tempCard = _travelCards.Single(c => c.Arrival == uniqueArrival); AddAndRemoveMethod(tempCard); for (int i = 0; i < cardsCount - 1; i++) { tempCard = _travelCards.First(d => d.Arrival == sortingTravelCards[i].Departure); AddAndRemoveMethod(tempCard); } sortingTravelCards.Reverse(); return(sortingTravelCards); }