Using a few memory profilers I am seeing that the memory usage of my program is increasing due to an issue with code that looks like what is shown below. A 'for' loop creates a new instance of MyClass with each iteration and adds it to the ArrayList. Even though myList is cleared each time MyMethod is called, the memory is still increasing and not being cleaned up properly. I read somewhere that this type of code can lead to a managed code memory leak but it didn't say how to fix it. Any suggestions?

Code:
public class MainClass
{
     private int max = 50;
     private ArrayList myList = new ArrayList();

     public MyMethod()
     {
           myList.Clear();

           for (int i = 0; i < max; i++)
          {
               MyClass myvar = new MyClass()
               myList.Add(myvar);
          }
     }
}