There's interesting stuff on the performance aspects in this question
However I personally would still recommend string.Format
unless performance is critical for readability reasons.
string.Format("{0}: {1}", key, value);
Is more readable than
key + ": " + value
For instance. Also provides a nice separation of concerns. Means you can have
string.Format(GetConfigValue("KeyValueFormat"), key, value);
And then changing your key value format from "{0}: {1}"
to "{0} - {1}"
becomes a config change rather than a code change.
string.Format
also has a bunch of format provision built into it, integers, date formatting, etc.