ArrayList и List.

Что лучше?

ArrayList использовался когда в C# ещё не было обобщений как таких, посему лучше его не использовать нынче для предотвращения возможных ошибок во время компиляций, связяных с кастом.

Использовать List<> безопаснее, т.к. это generic тип, и он предотвращает возможные будущие проблемы в ArrayList. Более того, обобщённый список наследует интерфейс IEnumerable, что позволяет перебирать его элементы и использовать LINQ.

Однозначно List предпочтительнее.