// return a cloned List of RateSet with shifted value (for example ShiftedRateSet(1, 0.0005) will shift element #1 adding 0.0005 ) public RateSet ShiftedRateSet(int Index, double Shift) { RateSet newRateSet = this.Clone(); // clone the obj newRateSet.ShiftValue(Index, Shift); // shift 'Index' element of newRateSet up of 'Shift' value return(newRateSet); }