/// <summary> /// Remueve un vehiculo del listado, si es que se encuentra /// </summary> /// <param name="concecionaria"></param> /// <param name="vehiculo"></param> /// <returns></returns> public static Concecionaria operator -(Concecionaria concecionaria, Vehiculo vehiculo) { Concecionaria nuevaConcecionaria = new Concecionaria(concecionaria._espacioDisponible); foreach (Vehiculo item in concecionaria._vehiculos) { if (item != vehiculo) { nuevaConcecionaria._vehiculos.Add(item); } } return(nuevaConcecionaria); }
static void Main() { Concecionaria concecionaria = new Concecionaria(5); Camion c1 = new Camion(Vehiculo.EMarca.Scania, "ASD012", ConsoleColor.Black); Camion c2 = new Camion(Vehiculo.EMarca.Iveco, "ASD913", ConsoleColor.Red); Moto m1 = new Moto(Vehiculo.EMarca.BMW, "HJK789", ConsoleColor.White); Moto m2 = new Moto(Vehiculo.EMarca.Yamaha, "IOP852", ConsoleColor.Blue); Automovil a1 = new Automovil(Vehiculo.EMarca.Chevrolet, "QWE968", ConsoleColor.Gray); Automovil a2 = new Automovil(Vehiculo.EMarca.Ford, "TYU426", ConsoleColor.DarkBlue); Automovil a3 = new Automovil(Vehiculo.EMarca.Scania, "IOP852", ConsoleColor.Green); // Agrego 6 ítems (los últimos 2 no deberían poder agregarse) y muestro concecionaria += c1; concecionaria += c2; concecionaria += m1; concecionaria += m2; concecionaria += a1; concecionaria += a2; concecionaria += a3; Console.WriteLine(concecionaria.ToString()); Console.WriteLine("<---------------------------------------------->"); Console.ReadKey(); Console.Clear(); // Quito un item y muestro concecionaria -= c1; Console.WriteLine(concecionaria.ToString()); Console.WriteLine("<---------------------------------------------->"); Console.ReadKey(); Console.Clear(); // Muestro solo Motos Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Moto)); Console.WriteLine("<---------------------------------------------->"); Console.ReadKey(); Console.Clear(); // Muestro solo Camiones Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Camion)); Console.WriteLine("<---------------------------------------------->"); Console.ReadKey(); Console.Clear(); // Muestro solo Automoviles Console.WriteLine(concecionaria.Mostrar(concecionaria, Concecionaria.ETipo.Automovil)); Console.WriteLine("<---------------------------------------------->"); Console.ReadKey(); }
/// <summary> /// Retorna un string con el espacio disponible, el espacio ocupado y las caracteristicas de los vehiculos del listado que coincidan con el paramatro tipoDeVehiculo /// </summary> /// <param name="concecionaria"></param> /// <param name="tipoDeVehiculo"></param> /// <returns></returns> public string Mostrar(Concecionaria concecionaria, ETipo tipoDeVehiculo) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos " + concecionaria._vehiculos.Count + " lugares ocupados de un total de " + concecionaria._espacioDisponible + " disponibles"); sb.AppendLine(""); foreach (Vehiculo v in concecionaria._vehiculos) { switch (tipoDeVehiculo) { case ETipo.Automovil: if (v is Automovil) { sb.AppendLine(((Automovil)v).Mostrar()); } break; case ETipo.Moto: if (v is Moto) { sb.AppendLine(((Moto)v).Mostrar()); } break; case ETipo.Camion: if (v is Camion) { sb.AppendLine(((Camion)v).Mostrar()); } break; default: if (v is Automovil) { sb.AppendLine(((Automovil)v).Mostrar()); } if (v is Moto) { sb.AppendLine(((Moto)v).Mostrar()); } if (v is Camion) { sb.AppendLine(((Camion)v).Mostrar()); } break; } } return(sb.ToString()); }