Use ResizeArray. It's an abbreviation for the CLI type List(T) which offers the features you require, like Remove for example.
From MSDN Library:
The List(T) class is the generic equivalent of the ArrayList class. It
  implements the IList(T) generic interface using an array whose size is
  dynamically increased as required.
Methods such as Contains, IndexOf, LastIndexOf, and Remove use an
  equality comparer for the list elements. The default equality comparer
  for type T is determined as follows. If type T implements the
  IEquatable(T) generic interface, then the equality comparer is the
  Equals(T) method of that interface; otherwise, the default equality
  comparer is Object.Equals(Object).
Methods such as BinarySearch and Sort use an ordering comparer for the
  list elements. The default comparer for type T is determined as
  follows. If type T implements the IComparable(T) generic interface,
  then the default comparer is the CompareTo(T) method of that
  interface; otherwise, if type T implements the nongeneric IComparable
  interface, then the default comparer is the CompareTo(Object) method
  of that interface. If type T implements neither interface, then there
  is no default comparer, and a comparer or comparison delegate must be
  provided explicitly.
The List(T) is not guaranteed to be sorted. You must sort the List(T)
  before performing operations (such as BinarySearch) that require the
  List(T) to be sorted.
Elements in this collection can be accessed using an integer index.
  Indexes in this collection are zero-based.
List(T) accepts a null reference (Nothing in Visual Basic) as a valid
  value for reference types and allows duplicate elements.
An example in F#:
open System
// an integer list
let intList =
    let temp = new ResizeArray<int>() in
    temp.AddRange([| 1; 2; 3 |]);
    temp
// print each int using the ForEach member method
intList.ForEach( fun i -> Console.WriteLine(i) )
// unpack items from the resize array
let itemOne = intList.Item(0)
let itemTwo = intList.[1]