What is the difference between ArrayList
and List<>
in C#?
Is it only that List<>
has a type while ArrayList
doesn't?
.netarraylistc++genericslist
What is the difference between ArrayList
and List<>
in C#?
Is it only that List<>
has a type while ArrayList
doesn't?
Best Solution
Yes, pretty much.
List<T>
is a generic class. It supports storing values of a specific type without casting to or fromobject
(which would have incurred boxing/unboxing overhead whenT
is a value type in theArrayList
case).ArrayList
simply storesobject
references. As a generic collection,List<T>
implements the genericIEnumerable<T>
interface and can be used easily in LINQ (without requiring anyCast
orOfType
call).ArrayList
belongs to the days that C# didn't have generics. It's deprecated in favor ofList<T>
. You shouldn't useArrayList
in new code that targets .NET >= 2.0 unless you have to interface with an old API that uses it.