public static List<LaneSchedulerAction> Expand(LaneSchedulerState state, LaneSchedulerReservation reservation) { List<LaneSchedulerAction> actions = new List<LaneSchedulerAction>(); if (state.IsPossible(reservation)) { for (int lane = 0; lane < state.numberOfLanes; lane++) { AppWeightPair appWeightPair = state.IsApplicable(lane, reservation.NumberOfLanes, reservation.NumberOfTimeSlots, reservation.StartTimeSlot); if (appWeightPair.applicable) { actions.Add(new LaneSchedulerAction(lane, reservation, appWeightPair.weight)); } } } return actions; }