60

Closed as exact duplicate of this question.

I have an array/list of elements. I want to convert it to a string, separated by a custom delimitator. For example:

[1,2,3,4,5] => "1,2,3,4,5"

What's the shortest/esiest way to do this in c#?

I have always done this by cycling the list and checking if the current element is not the last one before adding the separator.

for(int i=0; i<arr.Length; ++i)
{
    str += arr[i].ToString();
    if(i<arr.Length)
        str += ",";
}

Is there a LINQ function that can help me write less code?

Community
  • 1
  • 1
Loris
  • 1,940
  • 3
  • 19
  • 27

2 Answers2

162
String.Join(",", arr.Select(p=>p.ToString()).ToArray())
Mehrdad Afshari
  • 414,610
  • 91
  • 852
  • 789
39
String.Join(",", array.Select(o => o.ToString()).ToArray());
David Schmitt
  • 58,259
  • 26
  • 121
  • 165