Yes, pretty much.
List<T> is a generic class. It supports storing values of a specific type without casting to or from
object (which would have incurred boxing/unboxing overhead when
T is a value type in the
ArrayList simply stores
object references. As a generic collection,
List<T> implements the generic
IEnumerable<T> interface and can be used easily in LINQ (without requiring any
ArrayList belongs to the days that C# didn’t have generics. It’s deprecated in favor of
List<T>. You shouldn’t use
ArrayList in new code that targets .NET >= 2.0 unless you have to interface with an old API that uses it.