예제 #1
0
파일: Map.cs 프로젝트: lytning98/subway
        private static void CollectLines()
        {
            int lid = 0;

            foreach (SubwayLine sl in subwayMap.Lines)
            {
                LineStations.Add(new List <int>());
                LineId[sl.Name] = lid;
                int lastStationId = -1;
                foreach (string stationName in sl.Path)
                {
                    int sid = StationId[stationName];
                    LineStations[lid].Add(sid);
                    if (!StationLines[sid].Contains(lid))
                    {
                        StationLines[sid].Add(lid);
                    }

                    if (lastStationId != -1)
                    {
                        RouteSet.Add(new Tuple <int, int>(lastStationId, sid));
                        RouteSet.Add(new Tuple <int, int>(sid, lastStationId));
                    }
                    lastStationId = sid;
                }
                lid++;
            }
        }
        /// <summary>
        /// Override the ToString.
        /// </summary>
        /// <returns>Information of the line's code and first and last station</returns>
        public override string ToString()
        {
            string str = "Line " + LineNumber.ToString() + ": ";

            str += "\nFirst station: " + LineStations.First <LineStation>().ToString();
            str += "\nLast station: " + LineStations.Last <LineStation>().ToString();
            return(str);
        }