var list1 = new List<int>();
var list2 = int[50];
Either above are preferable to an ArrayList. The problem is that ArrayLists aren't type safe (they don't understand what sort of objects they hold). Both the above implement IList<int>, which I'll often use in the existing DB3 code as a read only way to access a list (it's not really read only, though).