Alle elementari ci è stato detto più di una volta, e .NET ci aiuta anche in questo. Supponiamo di avere:

string mioNome = "alBeRto dAllAgiaComa";

con un semplice:

using System.Globalization;
Console.WriteLine(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(mioNome));

avremo in output:

Alberto Dallagiacoma

Da documentazione MSDN, le stringhe interamente in maiuscolo (tipo acronimi) non vengono convertite.