示例#1
0
 protected Link FindLink(City fromC, City toC, TransportModes mode)
 {
     return((from l in routes
             where mode.Equals(l.TransportMode) &&
             ((fromC.Equals(l.FromCity) && toC.Equals(l.ToCity)) ||
              (toC.Equals(l.FromCity) && fromC.Equals(l.ToCity)))
             select new Link(fromC, toC, l.Distance, TransportModes.Rail)).FirstOrDefault());
 }
示例#2
0
        /// <summary>
        /// Finds all neighbor cities of a city.
        /// </summary>
        /// <param name="city">source city</param>
        /// <param name="mode">transportation mode</param>
        /// <returns>list of neighbor cities</returns>
        private List <City> FindNeighbours(City city, TransportModes mode)
        {
            var neighbors = new List <City>();

            foreach (var r in routes)
            {
                if (mode.Equals(r.TransportMode))
                {
                    if (city.Equals(r.FromCity))
                    {
                        neighbors.Add(r.ToCity);
                    }
                    else if (city.Equals(r.ToCity))
                    {
                        neighbors.Add(r.FromCity);
                    }
                }
            }

            return(neighbors);
        }
 /// <summary>
 /// Finds all neighbor cities of a city. 
 /// </summary>
 /// <param name="city">source city</param>
 /// <param name="mode">transportation mode</param>
 /// <returns>list of neighbor cities</returns>
 private List<City> FindNeighbours(City city, TransportModes mode)
 {
     List<City> neighbors = new List<City>();
     foreach (Link r in routes)
     {
         if (mode.Equals(r.TransportMode))
         {
             if (city.Equals(r.FromCity))
             {
                 neighbors.Add(r.ToCity);
             }
             else if (city.Equals(r.ToCity))
             {
                 neighbors.Add(r.FromCity);
             }
         }
     }
     return neighbors;
 }
示例#4
0
        protected Link FindLink(City fromC, City toC, TransportModes mode)
        {

            return (from l in routes
                    where mode.Equals(l.TransportMode)
                    && ((fromC.Equals(l.FromCity) && toC.Equals(l.ToCity))
                         || (toC.Equals(l.FromCity) && fromC.Equals(l.ToCity)))
                    select new Link(fromC, toC, l.Distance, TransportModes.Rail)).FirstOrDefault();
        }
示例#5
0
        /// <summary>
        /// Finds all neighbor cities of a city. 
        /// </summary>
        /// <param name="city">source city</param>
        /// <param name="mode">transportation mode</param>
        /// <returns>list of neighbor cities</returns>
        private List<City> FindNeighbours(City city, TransportModes mode)
        {
            var neighbors = new List<City>();
            foreach (var r in _routes)
                if (mode.Equals(r.TransportMode))
                {
                    if (city.Equals(r.FromCity))
                        neighbors.Add(r.ToCity);
                    else if (city.Equals(r.ToCity))
                        neighbors.Add(r.FromCity);
                }

            return neighbors;
        }
示例#6
0
 /// <summary>
 /// Finds the link between two cities.
 /// </summary>
 /// <param name="c1">first city</param>
 /// <param name="c2">second city</param>
 /// <param name="t"></param>
 /// <returns>found link or null</returns>
 protected Link FindLink(City c1, City c2, TransportModes t)
 {
     foreach (Link l in routes)
     {
         if (t.Equals(l.TransportMode) &&
         ((c1.Equals(l.FromCity) && c2.Equals(l.ToCity))
         || (c2.Equals(l.FromCity) && c1.Equals(l.ToCity))))
         {
             return new Link(c1, c2, l.Distance, TransportModes.Rail);
         }
     }
     return null;
 }