static string MakeCaption(string name)
{
var sb = new StringBuilder(name.Length);
bool nextUp = true;
foreach (char c in name)
{
if (nextUp)
{
sb.Append(Char.ToUpper(c));
nextUp = false;
}
else
{
if (c == '_')
{
sb.Append(' ');
continue;
}
if (Char.IsUpper(c))
sb.Append(' ');
sb.Append(c);
}
}
return sb.ToString();
}