Редактировать: ОП указал, что ему нужно разделить имена свойств
Если вы соблюдаете соглашение о присвоении имен CamelCase для свойств (т. Е. «FirstName» вместо «Firstname»), вы можете довольно легко разделить слова на символы в верхнем регистре.
string[] SplitByCaps(string input)
{
StringBuilder output = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
char c = input[i];
if (i > 0 && Char.IsUpper(c))
output.Append(' ');
output.Append(c);
}
return output.ToString().Split(' ');
}
Порядковый ответ:
Я бы сказал, что для практических целей это невозможно сделать для любой произвольной строки.
Конечно, можно написать программу для этого, но какими бы ни были ваши реальные потребности, эта программа будет излишней. Также могут быть библиотеки, которые уже делают это, но они будут настолько тяжелыми, что вы не захотите зависеть от них.
Любая программа, которая могла бы достичь этого, должна была бы знать все слова на английском языке (давайте даже не будем рассматривать мультиязычные решения). Вам также потребуется интеллектуальный лексический синтаксический анализатор, потому что для любого слова может быть несколько способов его разбить.
Я предлагаю вам поискать другой способ решения вашей конкретной проблемы.