Pass the previous MonthlyPayment item to the InitializeMyObject method:
previousMonth = MonthlyPayments.Add(InitializeMyObject(i, previousMonth));
public MonthlyPayment InitializeMyObject(int i, MonthlyPayment lastMonth)
{
MonthlyPayment x = new MonthlyPayment();
... you can use lastMonth to access the previous months values.
By the way ...
MonthlyPayments.Add(payment);
for(int i=1;i<=12;i++)
{
MonthlyPayments.Add(InitializeMyObject(i));
}
Indent your code correctly!
And since you add a payment before the loop, you end up with thirteen months in your collection ...