Search code examples
c#stringlistdelimiter

C# List<string> to string with delimiter


Is there a function in C# to quickly convert some collection to string and separate values with delimiter?

For example:

List<string> names --> string names_together = "John, Anna, Monica"


Solution

  • You can use String.Join. If you have a List<string> then you can call ToArray first:

    List<string> names = new List<string>() { "John", "Anna", "Monica" };
    var result = String.Join(", ", names.ToArray());
    

    In .NET 4 you don't need the ToArray anymore, since there is an overload of String.Join that takes an IEnumerable<string>.

    In newer versions of .NET different String.Join overloads use different approaches to produce the result. And this might affect the performance of your code.

    For example, those that accept IEnumerable use StringBuilder under the hood. And the one that accepts an array uses a heavily optimized implementation with arrays and pointers.

    Results:

    John, Anna, Monica