public static List <string> GetScheduleHeader(GTFSFeed feed, string route, DirectionType?dir, TimepointStrategy strat) { IEnumerable <string> timepointList; if (strat == TimepointStrategy.SpecifiedTimepoints) { timepointList = TimepointFinder.DataTimepoints(feed, route, dir, true) .Select(x => x.Item1); } else if (strat == TimepointStrategy.NullTimepoints) { timepointList = TimepointFinder.DataTimepoints(feed, route, dir, true) .Select(x => x.Item1); } else { timepointList = TimepointFinder.FirstAndLastStopList(feed, route, dir); } var timepointsOrdered = from stops in StopLister.GetStopOrder(feed, route, dir) join timepoints in timepointList on stops.Id equals timepoints select stops.Id; return(timepointsOrdered.ToList()); }