Is there a fast way to convert
List<string> to a comma-separated
string in C#?
I do it like this but Maybe there is a faster or more efficient way?
List<string> ls = new List<string>(); ls.Add("one"); ls.Add("two"); string type = string.Join(",", ls.ToArray());
PS: Searched on this site but most solutions are for Java or Python
This question is tagged with
~ Asked on 2011-12-21 16:40:47
In .NET 4 you don't need the
ToArray() call -
string.Join is overloaded to accept
IEnumerable<T> or just
There are potentially more efficient ways of doing it before .NET 4, but do you really need them? Is this actually a bottleneck in your code?
You could iterate over the list, work out the final size, allocate a
StringBuilder of exactly the right size, then do the join yourself. That would avoid the extra array being built for little reason - but it wouldn't save much time and it would be a lot more code.
~ Answered on 2011-12-21 16:42:49
The following will result in a comma separated list. Be sure to include a using statement for
List<string> ls = new List<string>(); ls.Add("one"); ls.Add("two"); string type = ls.Aggregate((x,y) => x + "," + y);
will yield one,two
if you need a space after the comma, simply change the last line to
string type = ls.Aggregate((x,y) => x + ", " + y);
~ Answered on 2011-12-21 16:54:39