Collections Data Structure C#

/*
Learning C# 
by Jesse Liberty
Publisher: O'Reilly 
ISBN: 0596003765
*/
 using System;
 using System.Collections;
 namespace StackDemo
 {
    public class TesterStackArray
    {
       public void Run()
       {
           Stack intStack = new Stack();
           // populate the array
           for (int i = 1;i<5;i++)
           {
               intStack.Push(i*5);
           }
           // Display the Stack.
           Console.WriteLine( "intStack values:" );
           DisplayValues( intStack );
           const int arraySize = 10;
           int[] testArray = new int[arraySize];
           // populate the array
           for (int i = 1; i < arraySize; i++)
           {
               testArray[i] = i * 100;
           }
           Console.WriteLine("\nContents of the test array");
           DisplayValues( testArray );
           // Copy the intStack into the new array, start offset 3
           intStack.CopyTo( testArray, 3 );
           Console.WriteLine( "\nTestArray after copy:  ");
           DisplayValues( testArray );
           // Copy the entire source Stack
           // to a new standard array.
           Object[] myArray = intStack.ToArray();
           // Display the values of the new standard array.
           Console.WriteLine( "\nThe new  array:" );
           DisplayValues( myArray );
       }
        public static void DisplayValues(
            IEnumerable myCollection )
        {
            foreach (object o in myCollection)
            {
                Console.WriteLine(o);
            }
        }
       [STAThread]
       static void Main()
       {
          TesterStackArray t = new TesterStackArray();
          t.Run();
       }
    }
 }