Generating Comma Separated Values
Suppose I have a collection of strings:

    "foo"
    "bar"
    "xyz"

And I would like to generate a comma separated values from the list into something like:

    "foo, bar, xyz"

Notice the lack of ", " at the end.

I am aware that there are dozens of ways to generate this:

- use for-loop and string.Format() or StringBuilder.
- use integer counter and remove the ending ", " if the value > 0
- don't put ", " on the first run
- etc.

Sample code of what I have right now:

    if (strs.Count() > 0)
    {
      var sb = new StringBuilder();
      foreach (var str in strs)
        sb.AppendFormat("{0}, ", str);
      return sb.Remove(0, 2).ToString();
    }

What is the best code that is highly reusable for the above scenario, and why?
Generating Comma Separated Values
===

Suppose I have a collection of strings:

    "foo"
    "bar"
    "xyz"

And I would like to generate a comma separated values from the list into something like:

    "foo, bar, xyz"

Notice the lack of ", " at the end.

I am aware that there are dozens of ways to generate this:

- use for-loop and string.Format() or StringBuilder.
- use integer counter and remove the ending ", " if the value > 0
- don't put ", " on the first run
- etc.

Sample code of what I have right now:

    if (strs.Count() > 0)
    {
      var sb = new StringBuilder();
      foreach (var str in strs)
        sb.AppendFormat("{0}, ", str);
      return sb.Remove(0, 2).ToString();
    }

What is the best code that is highly reusable for the above scenario, and why?