public virtual void CallFunctions(IList <T> masterList) { // At first glance this might seem a strange, roundabout way of implementing this... // i.e. why not just call the functions on myList since they hold references to // the same objects in the master list, however NBuilder should also support structs // so in fact they need to be called on the actual objects in the master list for (int i = 0; i < MasterListAffectedIndexes.Count; i++) { int index = MasterListAffectedIndexes[i]; objectBuilder.CallFunctions(masterList[index]); } }