문제

주어진 기준과 주어진 페이징 (시작 색인 및 원하는 항목 수)이있는 데이터베이스에서 항목을 검색하기 위해 게으른 목록을 작성합니다.

목록의 인스턴스화에서 나는 매핑 된 테이블의 총 항목 수를 계산하여 목록의 초기 크기가 있습니다 (초기의, 목록은 항목의 추가 및 제거를 허용하기 때문에).

거의 작동하지만 가져 오기 위해 구체적인 품목을 결정할 때 약간의 문제가 있습니다. 실제로 사용자가 주어진 것을 지정할 수 있습니다. 페치 크기 (의 말을하자 10,이 예에서).

현재 가져올 정확한 품목 수를 결정하기 위해 현재 순간에 페치 크기 요인 현재 색인 컬렉션의 항목 중 (데이터베이스 테이블에서 검색된 마지막 항목) : 결과가 총 카운트보다 작거나 동일하면 조치를 취하지 않지만 (그리고 페치는 더 큰 경우) 총계 중 나머지 항목을 가져 오는 항목을 계산하는 데 실패합니다.

실제로, 나머지 품목 수를 계산하기 위해, 나는 컬렉션의 총 품목 카운트에서 빼고 현재 색인 + 1 (인덱스는 0 기반)이며 모든 조건에서 작동하지 않습니다.

올바른 요소를 계산하는 방법에 대한 아이디어가 있습니까? 많은 사람들에게 감사합니다!

도움이 되었습니까?

해결책 3

답을 주셔서 감사합니다. 그러나 나는 그렇게 분명하지도 않은 솔루션을 찾았습니다.

index -> destination index (within the collection)
diff_to_index -> index - current_index
items_to_fetch -> (current_index + 1) + items_to_fetch >= total_count ? total_count - (current_index + 1) : max(diff_to_index, fetch_size)

건배! :)

다른 팁

나는 당신이 다음과 같은 일을해야한다고 생각합니다.

items_to_fetch = min( current_index + fetch_size, total_count )

어때요 :

items_to_fetch = max(0, min(fetch_size, total_count - current_index + 1))

또한 캐시 된 값이 아니라 실행시 현재 총 수를 얻으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top