Which .net 3.5 collection to use for a variable-length array of objects of one type?
===

I need a .NET 3.5 class more or less equivalent to C++ `std::vector`:

- contained objects type is fixed
- random access by index
- can create an empty container and add objects as needed

earlier I used `ArrayList` and it is quite right except it stores `object` and I have to cast the retrieved objects to the right type and I can add just anything there and this makes compile-time type checking harder.

Is there anything like `ArrayList` but parameterized by contained type?