An ArrayList is better when you have heterogenous collections, or you need
dynamic list-like behavior. If you know that you have 5 instances of Apple,
use an array.
An instance of ArrayList can be sized dynamically:
ArrayList arrList = new ArrayList();
while(true)
arrList.Add(new Dollar());
A native C# array (which is an instance of System.Array) has a fixed size.
An ArrayList has elements of type object, which enables you to add any
element to your array (for good or evil):
arrList.Add(new Apple());
arrList.Add(new Orange());
arrList.Add(new JessicaSimpson());
A native C# array has elements of a specific type:
Apple[] arr = new Apple[2];
arr[0] = new Apple();
arr[1] = new Orange(); // compiler error
--
Mickey Williams
Author, "Microsoft Visual C# .NET Core Reference", MS Press
www.servergeek.com/blogs/mickey