Я думаю, что ваше решение прекрасно, но если вы хотите более высокую производительность, вы можете попробовать:
string str = "This is my style";
Console.Write(str[0]);
for(int i = 1; i < str.Length; i++)
{
if(str[i-1] = " ")
Console.Write(" " + str[i]);
}
Вы можете получить более низкий постоянный коэффициент с этим кодом, но он все еще работает в O (n).Кроме того, я предполагаю, что в строке никогда не будет больше одного пробела, и он не будет начинаться с пробела.
Если вы хотите написать меньше кода, вы можете попробовать:
str result = str.Split(" ").Select(y => y[0]).ToList();
Или что-то.