У меня есть коллекция строк в C #. Каждая строка - это предложение, которое может появиться на странице. У меня также есть коллекция разрывов страниц, которая является коллекцией целых. представляет индекс, в котором коллекция строк разделена на новую страницу.
Пример: каждые 10 элементов в коллекции строк являются страницами, поэтому коллекция разрывов страниц будет коллекцией целых чисел со значениями 10, 20, 30. ...
Таким образом, если есть 2 страницы строк, то в коллекции разрывов страниц будет 1 элемент, а если будет 1 страница, в коллекции разрывов страниц будет ноль элементов.
Я пытаюсь создать следующую функцию:
List<string> GetPage(List<string> docList, List<int> pageBreakList, int pageNum)
{
// This function returns a subset of docList - just the page requested
}
Я сделал несколько попыток при написании этой функции и продолжаю придумывать сложные операторы if и switch для учета одностраничных и двухстраничных документов и номеров страниц, запрашиваемых вне диапазона (например, последняя страница должна возвращаться, если номер страницы больше, чем количество страниц и первой страницы, если номер страницы равен 0 или меньше).
Моя борьба с этой проблемой заставляет меня задать вопрос: существует ли хорошо известный шаблон или алгоритм для решения этого типа запроса подмножества?