Convert List to Array
This page was last reviewed on Feb 18, 2023.
Dot Net Perls
Convert List, array. A List can be converted to an array. The opposite conversion is also possible. In each conversion, the element types remain the same—strings remain strings.
Shows an array
More complex methods can be implemented. A for-loop can copy elements from a List and add them to an array. But this is more work for the programmer.
List to array. Here we convert a string List into a string array of the same number of elements. At the end, the program prints the array's length.
Step 1 We create a List and populate it with some strings. The List here can only hold strings (or null).
Step 2 Next we use ToArray on the List. To test it, we pass the string array to the Test() method.
Shows an array
using System; using System.Collections.Generic; class Program { static void Main() { // Step 1: create list. List<string> list = new List<string>(); list.Add("one"); list.Add("two"); list.Add("three"); list.Add("four"); list.Add("five"); // Step 2: convert to string array. string[] array = list.ToArray(); Test(array); } static void Test(string[] array) { Console.WriteLine("Array received: " + array.Length); } }
Array received: 5
Array to List. We can convert an array of any number of elements to a List that has the same type of elements. There are 3 parts to this example.
Part 1 Here we initialize a new string array containing 5 strings. These are specified as string literals.
Part 2 Here we convert the array to a List with the List constructor. This returns a new List of strings.
Part 3 Here the example converts the array to a List with the ToList() instance method.
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { // Part 1: string array. string[] array = new string[] { "one", "two", "three", "four", "five" }; // Part 2: use list constructor. List<string> list1 = new List<string>(array); Test(list1); // Part 3: use ToList method. List<string> list2 = array.ToList(); Test(list2); } static void Test(List<string> list) { Console.WriteLine("List count: " + list.Count); } }
List count: 5 List count: 5
Implicit conversion error. You may get the "Cannot implicitly convert type" error. This error raised by the compiler tells you that the type needs a regular cast or is not compatible.
Note If your code statement tries to assign a List to an array, you will get this error.
using System.Collections.Generic; class Program { static void Main() { List<int> items = null; int[] result = new int[0]; // This does not work. items = result; } }
Error CS0029 Cannot implicitly convert type 'int[]' to 'System.Collections.Generic.List<int>'
Notes, ToList. The ToList method is an extension method from System.Linq. This kind of method is an addition to normal C# method calls.
Readability. It is easy to remember that ToList converts a collection to a List, and ToArray does the same for an array. These methods are well-named.
A summary. It is possible to convert arrays to Lists (and lists to arrays) with this code. We cannot just assign one to the other. The List constructor can also be used.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Feb 18, 2023 (edit).
© 2007-2024 Sam Allen.