Version 1 is preferable because it is shorter and the compiler will in fact turn it into version 2 – no performance difference whatsoever.
More importantly given we have only 3
properties it might not make a
difference, but at what point do you
switch from concat to builder?
At the point where you’re concatenating in a loop – that’s usually when the compiler can’t substitute StringBuilder
by itself.