Convert List, string. A List can be converted to a string. This is possible with the ToArray method on the List type. We can also convert a string into a List.Conversions
The StringBuilder type helps with certain conversions, which are done with loops. When using StringBuilder, we must be careful with a trailing delimiter.
First example. We use the string.Join method to combine a List of strings into one string. The output can be used as a CSV record. On new .NET Framework versions, ToArray is not required.
However:In previous versions, we had to call ToArray on a List before using Join. In older programs this is still required.
Based on: .NET 4 C# program that converts List using System; using System.Collections.Generic; class Program { static void Main() { List<string> dogs = new List<string>(); dogs.Add("Aigi"); // Add string 1 dogs.Add("Spitz"); // 2 dogs.Add("Mastiff"); // 3 dogs.Add("Finnish Spitz"); // 4 dogs.Add("Briard"); // 5 string dogCsv = string.Join(",", dogs.ToArray()); Console.WriteLine(dogCsv); } } Output Aigi,Spitz,Mastiff,Finnish Spitz,Briard
Example 2. Here we use the StringBuilder class to convert a List to a single string. Note that you can convert a List of any object type into a string this way.StringBuilder
Final delimiter:The example has a final delimiter on the end. This is not present in code that uses string.Join. It can be inconvenient.
TrimEnd:Sometimes, it is good to remove the end delimiter with TrimEnd. Other times it is best left alone.
C# program that uses List and StringBuilder using System; using System.Collections.Generic; using System.Text; class Program { static void Main() { List<string> cats = new List<string>(); // Create new list of strings cats.Add("Devon Rex"); // Add string 1 cats.Add("Manx"); // 2 cats.Add("Munchkin"); // 3 cats.Add("American Curl"); // 4 cats.Add("German Rex"); // 5 StringBuilder builder = new StringBuilder(); foreach (string cat in cats) // Loop through all strings { builder.Append(cat).Append("|"); // Append string to StringBuilder } string result = builder.ToString(); // Get string from StringBuilder Console.WriteLine(result); } } Output Devon Rex|Manx|Munchkin|American Curl|German Rex|
Example 3. Here we convert a List of ints into a single string. The StringBuilder‘s Append method receives a variety of types. We can simply pass it the int.
And:Append() will handle the int on its own. It will convert it to a string and append it.
Performance:StringBuilder is fast for most programs. More speed could be acquired by using a char[] and then converting to a string.
C# program that converts List types using System; using System.Collections.Generic; using System.Text; class Program { static void Main() { List<int> safePrimes = new List<int>(); // Create list of ints safePrimes.Add(5); // Element 1 safePrimes.Add(7); // Element 2 safePrimes.Add(11); // Element 3 safePrimes.Add(23); // Element 4 StringBuilder builder = new StringBuilder(); foreach (int safePrime in safePrimes) { // Append each int to the StringBuilder overload. builder.Append(safePrime).Append(" "); } string result = builder.ToString(); Console.WriteLine(result); } } Output 5 7 11 23
Example 4. Finally, we get a List of strings from a string in CSV format. This requires the Split method. If you require per-item conversion, loop over the string array returned by Split.
C# program that converts string to List using System; using System.Collections.Generic; class Program { static void Main() { string csv = "one,two,three"; // The input string string[] parts = csv.Split(‘,‘); // Call Split method List<string> list = new List<string>(parts); // Use List constructor foreach (string item in list) { Console.WriteLine(item); } } } Output one two three
A summary. We converted Lists and strings using the string.Join methods and the StringBuilder approach. The List is easily concatenated and stored in a database or file with these methods.