You should use String.Concat for up to 4 string parameters, String.Format if you can format your string, or - which can be used for all - a StringBuilder (which String.Format uses internally). Also, keep in mind that string are immutable while the StringBuilder is not (meaning it can actually grow). When you concatenate strings, the CLR must get the length of both strings, create a new string of the total length, then copy each character from both strings. You're right - it is very inefficient. The methods and class above will help you (and are nice for formatting and what-not, too).
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----