public static void Main()
string original = "Artículo 13: Cualquiera sean los sistemas de abastecimiento, el agua potable deberá " +
"cumplir con los requisitos físicos, químicos, radiactivos y bacteriológicos establecidos en " +
"la reglamentación vigente sobre la materia.[...]";
Console.WriteLine(Truncate(original, 15));
Console.WriteLine(Truncate2(original, 15));
private static string Truncate(string original, int maxWords)
return string.IsNullOrWhiteSpace(original)
: string.Join(" ", original.Split(' ').Take(maxWords));
private static string Truncate2(string original, int maxWords)
if (string.IsNullOrWhiteSpace(original)) return original;
var result = new StringBuilder();
for (int i = 0, spaceCount = 0; i < original.Length; i++)
if (original[i] == ' ') spaceCount++;
if (spaceCount == maxWords) break;
result.Append(original[i]);
return result.ToString();