c# does string join use stringbuilder