ArrayList
, List
In the C# programming language, an ArrayList
can be converted into a List
. This can be done in a variety of ways.
One conversion approach uses the extension method syntax. This syntax gives us an effective ToList
method for the ArrayList
type.
This program introduces the static
Extensions class
and the ToList
generic method inside that class
. ToList
is a generic extension method—it has a type parameter.
ArrayList
argument to specify that the method is an extension.ToList
, we allocate a List
with the correct capacity, and then copy each element.ToList
method on an ArrayList
instance. You can see that the method works correctly for the List
of ints.using System; using System.Collections; using System.Collections.Generic; static class Extensions { /// <summary> /// Convert ArrayList to List. /// </summary> public static List<T> ToList<T>(this ArrayList arrayList) { List<T> list = new List<T>(arrayList.Count); foreach (T instance in arrayList) { list.Add(instance); } return list; } } class Program { static void Main() { // Create ArrayList. ArrayList arrayList = new ArrayList(); arrayList.Add(1); arrayList.Add(2); arrayList.Add(3); // Use extension method. List<int> list = arrayList.ToList<int>(); foreach (int value in list) { Console.WriteLine(value); } } }1 2 3
I also tested the method using string
literals in the ArrayList
and it worked correctly. Just change the type of the local variables in the program.
With ToList
we converted an ArrayList
to a List
. Another approach is to convert the ArrayList
to an Array, and then use the new List
constructor with that Array as the parameter.