Timed series of events. Logic for organizing events based on time?
My simplified answer (without interpolation or looping):

        int numEvents = events.Count;

        // Check if there are any events to execute
        if (eventIndex == numEvents)
        {
            return;
        }

        // Check if the current event has yet to occur 
        if (events[eventIndex].Time &gt; currentTime)
        {
            return;
        }
        else
        {
            // Update the property based on the current event
            UpdateProperty(events[eventIndex].Value);

            // Current event has been executed so increase the event index
            eventIndex++;
        }