title: Is String.Format as efficient as StringBuilder
body: <p>Suppose I have a stringbuilder in C# that does this:</p>
  
  <pre><code>StringBuilder sb = new StringBuilder();
  string cat = "cat";
  sb.Append("the ").Append(cat).(" in the hat");
  string s = sb.ToString();
  </code></pre>
  
  <p>would that be as efficient or any more efficient as having:</p>
  
  <pre><code>string cat = "cat";
  string s = String.Format("The {0} in the hat", cat);
  </code></pre>
  
  <p>If so, why?</p>
  
  <p><strong>EDIT</strong> </p>
  
  <p>After some interesting answers, I realised I probably should have been a little clearer in what I was asking. I wasn't so much asking for which was quicker at concatenating a string, but which is quicker at <strong><em>injecting</em></strong> one string into another.</p>
  
  <p>In both cases above I want to inject one or more strings into the middle of a predefined template string.</p>
  
  <p>Sorry for the confusion</p>