private static string CoalesceWhitespace(string str)
{
var sb = new StringBuilder();
bool lastWasWhitespace = false;
foreach (char c in str)
{
if (char.IsWhiteSpace(c))
{
if (lastWasWhitespace || sb.Length == 0) continue;
lastWasWhitespace = true;
sb.Append(' ');
}
else
{
lastWasWhitespace = false;
sb.Append(c);
}
}
if (sb.Length > 0 && sb[sb.Length - 1] == ' ')
{
sb.Length--;
}
return sb.ToString();
}
}