Я пишу ленивый список для извлечения элементов из базы данных с заданными критериями и заданной страницей (начальный индекс и желаемое количество элементов).
При создании экземпляра списка я подсчитываю общее количество элементов в сопоставленной таблице, чтобы у меня был начальный размер списка ( начальный , поскольку список позволяет добавлять и удалять элементы ).
Это почти работает, но у меня возникают некоторые проблемы при определении конкретного количества элементов для выборки: на самом деле, я позволяю пользователям указывать определенный размер выборки (скажем, 10 , в этом примере).
Чтобы определить точное количество элементов для выборки, в настоящий момент я добавляю коэффициент размер выборки к текущему индексу элементов в коллекции (последний извлекается из таблицы базы данных): если результат меньше или равен общему количеству, я не выполняю никаких действий (и выборка работает кристально ясно), но если он больше общего, мой расчет оставшихся элементов получить не удается.
На самом деле, для вычисления количества оставшихся элементов я вычитаю из общего количества элементов в коллекции текущий индекс + 1 (индекс начинается с нуля), который не работает в все условия.
У вас есть представление о том, как вычислить правильные факторы? Большое спасибо вам, ребята!