<p>I have an array of integers:</p>
<pre><code>int[] number = new int[] { 2,3,6,7 };
</code></pre>
<p>What is the easiest way of converting these into a single string where the numbers are separated by a character (like: <code>&quot;2,3,6,7&quot;</code>)?</p>
<p>I'm using C# and .NET 3.5.</p>

```
```
var ints = new int[] {1, 2, 3, 4, 5};
var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());
Console.WriteLine(result); // prints "1,2,3,4,5"
```
```
As of (at least) .NET 4.5,
```
```
var result = string.Join(",", ints.Select(x => x.ToString()).ToArray());
```
```
is equivalent to:
```
```
var result = string.Join(",", ints);
```
```
I see several solutions advertise usage of StringBuilder. Someone complains that the Join method should take an IEnumerable argument.
I'm going to disappoint you :) String.Join requires an array for a single reason - performance. The Join method needs to know the size of the data to effectively preallocate the necessary amount of memory.
Here is a part of the internal implementation of String.Join method:
```
```
// length computed from length of items in input array and length of separator
string str = FastAllocateString(length);
fixed (char* chRef = &str.m_firstChar) // note than we use direct memory access here
{
    UnSafeCharBuffer buffer = new UnSafeCharBuffer(chRef, length);
    buffer.AppendString(value[startIndex]);
    for (int j = startIndex + 1; j <= num2; j++)
    {
        buffer.AppendString(separator);
        buffer.AppendString(value[j]);
    }
}
```
```