Always profile. ALWAYS.
string ret = string.Empty;
for (int i=0; (i < someLargeInt); i++) {
ret += AMethodThatReturnsAString (i);
}
return ret;
Compilers are smarter than you. This can be compiled into highly optimized code with loop unrolling and expression templates among other optimizations. The rule of thumb is: 1) write simple, clear, expressive code. 2) profile 3) fix hotspots