I have a string (from a CDATA element) that contains description of XML. I need to decode this string into a new string that displays the characters correctly using C#
You might also consider the static parse method from XDocument. I'm not sure how it compares to others mentioned here, but it seems to parse these strings well.
Once you get the resulting XDocument, you could turn around with ToString to get the string back:
string parsedString = XDocument.Parse(" ").ToString();