It looks like you want a projection before using Join:
result = string.Join(",", items.Select(x => "[" + x + "]") .ToArray());
Personally, I think this is clearer than making a connection with a more complex delimiter. It seems that you actually have the elements [First] , [Second] and [Third] connected by commas, and not the elements First , Second and Third connected ],[ .
Your second form is equally easy to achieve:
result = string.Join(",", items.Select(x => "--" + x + "-") .ToArray());
Note that you do not need to call ToArray if you are using .NET 4, since it introduced additional overloads to make working with string.Join .
source share