patterncsharpCritical
Creating a comma separated list from IList<string> or IEnumerable<string>
Viewed 0 times
creatingfromcommaienumerablelistseparatedstringilist
Problem
What is the cleanest way to create a comma-separated list of string values from an
IList or IEnumerable?String.Join(...) operates on a string[] so can be cumbersome to work with when types such as IList or IEnumerable cannot easily be converted into a string array.Solution
.NET 4+
Detail & Pre .Net 4.0 Solutions
It's easy enough to write the equivalent helper method if you need to:
Then call it like this:
You can then call
The latter is a bit of a mouthful though :)
This is likely to be the simplest way to do it, and quite performant as well - there are other questions about exactly what the performance is like, including (but not limited to) this one.
As of .NET 4.0, there are more overloads available in
Much simpler :)
IList strings = new List{"1","2","testing"};
string joined = string.Join(",", strings);Detail & Pre .Net 4.0 Solutions
IEnumerable can be converted into a string array very easily with LINQ (.NET 3.5):IEnumerable strings = ...;
string[] array = strings.ToArray();It's easy enough to write the equivalent helper method if you need to:
public static T[] ToArray(IEnumerable source)
{
return new List(source).ToArray();
}Then call it like this:
IEnumerable strings = ...;
string[] array = Helpers.ToArray(strings);You can then call
string.Join. Of course, you don't have to use a helper method:// C# 3 and .NET 3.5 way:
string joined = string.Join(",", strings.ToArray());
// C# 2 and .NET 2.0 way:
string joined = string.Join(",", new List(strings).ToArray());The latter is a bit of a mouthful though :)
This is likely to be the simplest way to do it, and quite performant as well - there are other questions about exactly what the performance is like, including (but not limited to) this one.
As of .NET 4.0, there are more overloads available in
string.Join, so you can actually just write:string joined = string.Join(",", strings);Much simpler :)
Code Snippets
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);IEnumerable<string> strings = ...;
string[] array = strings.ToArray();public static T[] ToArray(IEnumerable<T> source)
{
return new List<T>(source).ToArray();
}IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);// C# 3 and .NET 3.5 way:
string joined = string.Join(",", strings.ToArray());
// C# 2 and .NET 2.0 way:
string joined = string.Join(",", new List<string>(strings).ToArray());Context
Stack Overflow Q#799446, score: 1820
Revisions (0)
No revisions yet.