Question: Lot of questions has been already asked about the differences between string and string builder and most of the people suggest that string builder is faster than string. I am curious to know if string builder is too good so why string is there? Moreover, can some body give me an example where string will be more usefull than string builder?

Answer: 
Would you really use a string builder here?

```
Console.WriteLine("MyString");

```

StringBuilder is great when you need to do large amounts of concatenation to build a string. 

Jon Skeet has a great aricle on this here: <http://www.yoda.arachsys.com/csharp/stringbuilder.html>

Check out the section that starts "So I Should Use StringBuilder Everywhere, Right?"

He writes:

> 
> The important difference between this
>  example and the previous one is that
>  we can easily present all the strings
>  which need to be concatenated together
>  in one call to String.Concat. That
>  means that no intermediate strings are
>  needed. StringBuilder is efficient in
>  the first example because it acts as a
>  container for the intermediate result
>  without having to copy that result
>  each time - when there's no
>  intermediate result anyway, it has no
>  advantage.
> 
> 
> 

---
StringBuilder is not faster than using a string as far as just creating a string. 

StringBuilder can be faster when you have to concatenate several strings together (like in loop). You are going to pay a performance penalty when you have to convert the string builder contents to a string. 

One of the real advantages of StringBuilder over string is that you can pass it through several methods and append strings along the way. You can't do that by passing a string object. So if you have a recursive operation where you are building like a JSON object or something, you can pass the StringBuilder through and append the values.