using System.IO;using System.Text;
public static void Main()
Console.WriteLine(WrapText.Wrap("Hello World", 10));
public static class WrapText
public static string Wrap(this string text, int width)
var result = new StringBuilder();
using (var sr = new StringReader(text))
while ((line = sr.ReadLine()) != null)
if (result.Length > 0) result.AppendLine();
result.Append(WrapLine(line, width));
return result.ToString();
public static string WrapLine(this string text, int width)
var result = new StringBuilder();
var line = new StringBuilder();
var words = text.Split(' ');
foreach (var word in words)
if (line.Length + word.Length >= width)
if (result.Length > 0) result.AppendLine();
result.Append(line.ToString());
if (line.Length > 0) line.Append(" ");
if (result.Length > 0) result.AppendLine();
result.Append(line.ToString());
return result.ToString();