Wednesday, 30 August 2017

c# - Creating a comma separated list from IList or IEnumerable

.NET 4+



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 :)

No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...