Det er fair nok at folk spørger; løsningen afhænger jo meget af hvad du mener er æstetisk korrekt.
Her er dog skitsen til starten af en mulig løsning:
string htmlKode = @"<h1>Mulig løsning</h1> ... din html<br> kode <br /> her <a href=""
http://www.eksperten.dk/spm/796200"">C# html til tekst</a> ...";
Console.WriteLine(htmlKode);
string tekst = htmlKode;
// Fjern javascript-tags sammen med koden imellem dem.
Regex re = new Regex(@"<script[^>]*>.*?</script>", RegexOptions.IgnoreCase);
tekst = re.Replace(tekst, "");
// Erstat <br> eller <br /> med \r\n.
re = new Regex(@" *<br([ /]*)> *", RegexOptions.IgnoreCase);
tekst = re.Replace(tekst, "\r\n");
// Behandl urls:
re = new Regex(@"<a .*?href=['""](?<url>.*?)['""].*?>(?<tekst>.*?)</a>", RegexOptions.IgnoreCase);
tekst = re.Replace(tekst, @"${url} (${tekst})");
// Fjern alle html tags som stadig er ubehandlet.
re = new Regex(@"<.*?>");
tekst = re.Replace(tekst, "");
Console.WriteLine();
Console.WriteLine(tekst);