Что ж, если это только пробелы, разделяющие части, вы можете сделать это довольно легко:
string reversed = string.Join(" ", text.Split(' ').Reverse());
В .NET 3.5 вам потребуется дополнительный вызов ToArray из-за строки.те же перегрузки в .NET 4:
string reversed = string.Join(" ", text.Split(' ').Reverse().ToArray());
Это можно сделать более эффективно, используя Array.Reverse
для обратного разбиения массива на месте:
string[] parts = text.Split(' ');
Array.Reverse(parts);
string reversed = string.Join(" ", parts);
... но неразница будет значительна или нет более сомнительна:)