The .NET Framework offers a number of special-purpose collection classes that offer additional capabilities over simple arrays.
The ArrayList collection dynamically resizes at run time as you add new members. You can create an ArrayList collection using the default ArrayList constructor, in which case the default initial capacity of 16 is used, or you can specify the initial capacity using the following constructor:
If you add an item to the collection so that the number of items exceeds the capacity, the capacity is doubled. If you can estimate the maximum size of the collection at construction, you can avoid resize operations at run time. ...