public static class StringExtension
public static string StripSpaces(this string s)
return s.Aggregate(new StringBuilder(), (acc, c) =>
if (c != ' ' || acc.Length == 0 || acc[acc.Length - 1] != ' ')
public static void Main()
const string input = " (five leading spaces) (five internal spaces) (five trailing spaces) ";
Console.WriteLine(" Input: \"{0}\"", input);
Console.WriteLine("Output: \"{0}\"", StringExtension.StripSpaces(input));