using System;
using System.Collections;

namespace P7_2
{
    class Program
    {
        static void Main()
        {
            //ArrayListʹInsertгʼ 
            ArrayList myAL = new ArrayList();
            myAL.Insert(0, "The");
            myAL.Insert(1, "fox");
            myAL.Insert(2, "jumps");
            myAL.Insert(3, "over");
            myAL.Insert(4, "the");
            myAL.Insert(5, "dog");
            // ʾArrayListĸԪֵ
            Console.WriteLine("ArrayListʼ£");
            PrintValues(myAL);
            // Ԫ"dog"֮ǰ "lazy"Ԫء
            myAL.Insert(myAL.IndexOf("dog"), "lazy");
            // ʾArrayListĸԪֵ.
            Console.WriteLine("Ԫءdog֮ǰ롰lazyԪأArrayList£");
            PrintValues(myAL);
            //myALβ "!!!"Ԫء
            myAL.Insert(myAL.Count, "!!!");
            // ʾArrayListĸԪֵ
            Console.WriteLine("myALβˡ!!!Ԫ,ArrayList£");
            PrintValues(myAL);
            Console.WriteLine("myALԪֵǷoverԪأ{0}",myAL.Contains("over"));
            //myALе"over"Ԫ
            myAL.Remove("over");
            Console.WriteLine("myALoverԪغĸԪֵ£");
            PrintValues(myAL);
            //תmyALеԪ
            myAL.Reverse();
            Console.WriteLine("תmyALеԪغĸԪֵ£");
            PrintValues(myAL);
            // Sorts the values of the ArrayList using the default comparer.
            myAL.Sort(0, 4, null);
            Console.WriteLine("myALеĵ04ԪذĸԪλ£");
            PrintIndexAndValues(myAL);
            // ArrayListԪ
            myAL.Clear();
            Console.WriteLine("ArrayListԪ֮");
            Console.WriteLine("   Count    : {0}", myAL.Count);
            Console.WriteLine("   Capacity : {0}", myAL.Capacity);
             Console.ReadLine();
}
        public static void PrintValues(IEnumerable myList)
        {
            foreach (Object obj in myList)
                Console.Write("   {0}", obj);
            Console.WriteLine();
        }
        public static void PrintIndexAndValues(IEnumerable myList)
        {
            int i = 0;
            foreach (Object obj in myList)
                Console.Write("\t[{0}]:\t{1}", i++, obj);
            Console.WriteLine();
        }
}
}
