проще всего создать метод расширения для String
public static IEnumerable<string> GetPages(this string text,
int charsPerPage, string breakChar)
{
int count = 0;
int start = 0;
while (count < text.Length)
{
count = Math.Min(text.Length, count + charsPerPage);
if (count == text.Length)
{
yield return text.Substring(start, count - start);
}
else
{
var nextBreak = text.IndexOf(breakChar, count);
if (nextBreak == -1)
{
yield return text.Substring(start, count - start);
start = count + breakChar.Length;
}
else
{
yield return text.Substring(start, nextBreak - start);
start = nextBreak + breakChar.Length;
}
}
}
}
Это может работать не совсем так, как я не проверял это должным образом - но вы поняли
и вы можете использовать его вот так
var pages = text.GetPages(5000, "<br/>");