예제 #1
0
        public override List <Car> GetResult()
        {
            List <Car> lst      = new List <Car>();
            int        i        = 0;
            int        capacity = new Taxi().Capacity;

            while (i < Drivers.Count && i < Passengers.Count / ((double)capacity))
            {
                Car car = new Taxi();
                car.DriverInstance(Drivers[i]);
                car.Passengers.AddRange(Passengers.GetRange(i * capacity,
                                                            Passengers.Count - i * capacity < capacity ? Passengers.Count - i * capacity : capacity));
                lst.Add(car);
                i++;
                if (car.Passengers.Last() is Child)
                {
                    (car as Taxi).ChildChairsExisting = true;
                }
            }
            Drivers.RemoveRange(0, i);
            foreach (var car in lst)
            {
                Passengers.RemoveRange(0, car.Passengers.Count);
            }
            return(lst);
        }
예제 #2
0
        public override List <Car> GetResult()
        {
            List <Car> lst      = new List <Car>();
            int        i        = 0;
            int        capacity = new Bus().Capacity;

            while (i < Drivers.Count && i < Passengers.Count / ((double)capacity))
            {
                Car car = new Bus();
                car.DriverInstance(Drivers[i]);
                car.Passengers.AddRange(Passengers.GetRange(i * capacity, Passengers.Count - i * capacity < capacity ? Passengers.Count - i * capacity : capacity));
                lst.Add(car);
                i++;
            }
            Drivers.RemoveRange(0, i);
            foreach (var car in lst)
            {
                Passengers.RemoveRange(0, car.Passengers.Count);
            }

            return(lst);
        }