using System.Collections.Generic;
public static void Main()
var vehicles = new List<Vehicle> {
new Vehicle { Model = "Accord", Percentile = .6d }, new Vehicle { Model = "Corvette", Percentile = .3d }, new Vehicle { Model = "Motorcycle", Percentile = .1d }
var vehicleStack = CreateVehicleStack(vehicles);
for (int day = 1; day <= 10; day++)
if (vehicleStack.Count() == 0)
vehicleStack = CreateVehicleStack(vehicles);
var v = vehicleStack.Pop();
Console.WriteLine("driving " + v.Model);
static Stack<Vehicle> CreateVehicleStack(IEnumerable<Vehicle> vehicles)
var vehicleStack = new Stack<Vehicle>();
var count = vehicles.Count();
var orderedVehicles = vehicles.OrderBy(v => v.Percentile);
foreach (var vehicle in orderedVehicles)
var number = (int)(10 * vehicle.Percentile);
for (int i = 0; i < number; i++)
vehicleStack.Push(vehicle);