I'd like to make a comma seperated value string with Linq's Aggregate function. Anyone know how to do this?
Given an array of strings like this:
var authors = new string[] {"author 1", "author 2", "author 3"};
How do I get a single string like this author 1, author 2, author 3?
I'm thinking something like authors.Aggregate(author => author + ",")
might be able to do this but not sure.
Ideas?
If you're only looking to comma-separate them, just use string.Join:
string.Join(", ", authors);
This will work with any IEnumerable<string> (at least in .NET 4.0), but has worked with arrays of strings since 1.0.
As Bennor McCarthy says, you'd be much better off using string.Join
for this purpose. If you really do want to use Enumerable.Aggregate
though, this should do:
string csvString = authors.Aggregate((csvSoFar, author) => csvSoFar + ", " + author);
This is roughly equivalent to:
string csvString = authors.First();
foreach (string author in authors.Skip(1))
{
csvString += ", " + author;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With