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()); }
private IEnumerable <Link> GetListOfAllOutgoingRoutes(City visitingCity, TransportMode mode) { foreach (var route in routes) { if (mode.Equals(route.TransportMode)) { if (visitingCity.Equals(route.FromCity) || visitingCity.Equals(route.ToCity)) { yield return(route); } } } }
/// <summary> /// checks if both cities of the link are included in the passed city list /// </summary> /// <param name="cities">list of city objects</param> /// <returns>true if both link-cities are in the list</returns> /*internal bool IsIncludedIn(List<City> cities) * { * var included = cities.Any(c => c.Name == FromCity.Name || c.Name == ToCity.Name); * return included; * }*/ public override bool Equals(object obj) { if (obj.GetType() == typeof(Link)) { var comp = (Link)obj; return(fromCity.Equals(comp.FromCity) && toCity.Equals(comp.toCity) && distance.Equals(comp.Distance)); } return(false); }
/// <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; }
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(); }
/// <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; }