Mc и Mac - обычные префикс фамилии по всей территории США, и есть другие. TextInfo.ToTitleCase не обрабатывает эти случаи и не должен использоваться для этой цели. Вот как я это делаю:
public static string ToTitleCase(string str)
{
string result = str;
if (!string.IsNullOrEmpty(str))
{
var words = str.Split(' ');
for (int index = 0; index < words.Length; index++)
{
var s = words[index];
if (s.Length > 0)
{
words[index] = s[0].ToString().ToUpper() + s.Substring(1);
}
}
result = string.Join(" ", words);
}
return result;
}