Convert List of String to a String separated by a delimiter

Solution 1:

String.Join(",", myListOfStrings.ToArray())

Solution 2:

That depends on what you mean by "best". The least memory intensive is to first calculate the size of the final string, then create a StringBuilder with that capacity and add the strings to it.

The StringBuilder will create a string buffer with the correct size, and that buffer is what you get from the ToString method as a string. This means that there are no extra intermediate strings or arrays created.

// specify the separator
string separator = ", ";

// calculate the final length
int len = separator.Length * (list.Count - 1);
foreach (string s in list) len += s.Length;

// put the strings in a StringBuilder
StringBuilder builder = new StringBuilder(len);
builder.Append(list[0]);
for (int i = 1; i < list.Count; i++) {
   builder.Append(separator).Append(list[i]);
}

// get the internal buffer as a string
string result = builder.ToString();