public float MarkCohorts(IDisturbance disturbance) { // Go backwards through list of cohort data, so the removal of an // item doesn't mess up the loop. isMaturePresent = false; for (int i = cohorts.Count - 1; i >= 0; i--) { Cohort cohort = new Cohort(species, cohorts[i]); disturbance.ReduceOrKillMarkedCohort(cohort); double defoliation = disturbance.CumulativeDefoliation(); cohort.Fol *= 1 - (float)defoliation; } return(0); }