Voici un petit bout de code réalisé pour Loïc. L'idée ma semblé simple, mais au final ça c'est avéré un peu tordu à écrire.
String nouvellePhrase2 = (from m in phrase.Split(' ') select String.Concat( m.Substring(0, 1).ToUpper(), m.Length > 1 ? m.Substring(1) : String.Empty)) .Aggregate((accu, c) => String.Concat(accu, String.IsNullOrEmpty(accu) ? String.Empty : " ", c));