andrewducker: (Default)
[personal profile] andrewducker
The code I've been writing to convert a list into a comma-delimited string that consists of:
var duckerBrothers = new List<string> { "Andy", "Mike", "Hugh" };
var output = string.Empty;
foreach (var duckerBrother in duckerBrothers)
{
if (output != string.Empty)
{
output += ", ";
}

output += duckerBrother;
}

Can be rewritten as:
var duckerBrothers = new List<string> { "Andy", "Mike", "Hugh" };
var output = string.Join(",", duckerBrothers);

That's what I get for assuming that there is no built-in way of doing things.

Date: 2013-01-15 03:59 pm (UTC)
akicif: Slightly 'shopped stonehenge pic, summer solstice 2001 (Default)
From: [personal profile] akicif
And "brotherDuckers" would just look silly...

Actually, wouldn't your way, rather than the built-in way, be better if you wanted to replace the final ", " with " and "?

Date: 2013-01-15 04:07 pm (UTC)
simont: A picture of me in 2016 (Default)
From: [personal profile] simont
I had that problem in Python once, and found it needed fewer special-case handlers than I'd expected:
    answer = ", ".join(words[:-2] + [" and ".join(words[-2:])])
Though that does rely on Python's array slice expressions having the right edge-case behaviour when the array gets shorter than 2 elements, and I don't know if C# will do the same.

Date: 2013-01-15 07:04 pm (UTC)
pozorvlak: (Default)
From: [personal profile] pozorvlak
brothersDucker?

Date: 2013-01-15 07:13 pm (UTC)
akicif: Slightly 'shopped stonehenge pic, summer solstice 2001 (Default)
From: [personal profile] akicif
Ha! Of course. Clearly the real reason I'm not a coder is my eye for detail....

December 2025

S M T W T F S
 1 2 3 4 5 6
7 8 9 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 10th, 2025 10:00 pm
Powered by Dreamwidth Studios