Това е известен проблем с имената - нещата са изключително противоречиви. Прочетете тази статия за повече информация: http://www.w3.org/International/questions/qa-personal-names
Във вашия пример споменавате фамилното име „VAN BEBBER“, което искате да бъде изписано с главна буква като „VanBebber“. Въпреки това, както се посочва в статията, има други комбинации от други части на света, които биха провалили повечето опити за стандартизация - например фамилното име „BIN OSMAN“ би било правилно изписано с главни букви като „binOsman" - няма главно "b" за "bin", което означава "син на" и следователно не се вписва добре в западната концепция за фамилно име.
Споменавате, че разделяте фамилните имена на тирета, което най-вероятно идва от идеята за фамилия с тирета - проверявате ли и собственото име за тирета? Сайтът дава примерното име „María-Jose Carreño Quiñones“ – което е доста трудно за разбор поради двойно собствено име (разделено с тире), както и двойно фамилно име (разделено с интервал). Как вашата програма ще се справи с това име?
За да отговоря на въпроса ви по-директно, без да въвеждате повече главни букви - вече знаете как да разделите низ чрез тирето - ако искате да покриете главните главни имена на фамилните имена с интервали, трябва допълнително да разделите низа на фамилията с интервали, и едва след това главна първата буква на различните разделени низове.
Като алтернатива, както Dai спомена в коментар, можете да използвате метода ToTitleCase
- повече информация тук: https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase(v)=vs.110).aspx Това най-вероятно е по-добро решение, отколкото да се опитвате да направите свой собствен. Въпреки това, тази страница се позовава на факта, че не всички езици се изписват с главни букви по един и същи начин (и наистина различните фамилни имена могат да идват от различни области/култури/езици) и следователно настройването на правилния език може не винаги да доведе до правилното изписване с главни букви на фамилното име. Обърнете внимание, че ще изпише "BIN OSMAN" с главни букви като "BвOsman", което е технически неправилно.
Ето бърз пример от тази страница:
// Defines the String* with mixed casing.
String^ myString = "wAr aNd pEaCe";
// Creates a TextInfo based on the "en-US" culture.
/**** Personal Note - en-US may not be the correct culture for every last name! ****/
CultureInfo^ MyCI = gcnew CultureInfo( "en-US",false );
TextInfo^ myTI = MyCI->TextInfo;
// Changes a String* to lowercase. Outputs "War and Peace"
Console::WriteLine( "\"{0}\" to titlecase: {1}", myString, myTI->ToTitleCase( myString )
person
Jake
schedule
13.10.2015
ToTitleCase
в него. - person Dai   schedule 13.10.2015