Here's my strategy for choosing which C# collection type to use:
if number of items in collection is fixed, then use an array, e.g.:
string[] directions = new string[] { "north", "south", "east", "west" };
otherwise always use
List<T>
unless of course you need a more specialized collection, e.g.
Stack<T>, Queue<T>, or Dictionary<TKey, TValue>
but never use ArrayList anymore
Based on your experience, what is missing from this strategy?