Entity Framework를 사용하여 데이터베이스에서 데이터를로드하고 있습니다. I는 페이지 번호 파라미터 제어기로 전달되는 페이지 당 10 개 개의 요소를 표시해야 ASP MVC 컨트롤러를 갖고 : 여기서예외없이 List.GetRange에 대체 하시겠습니까?
public ActionResult Blog([DefaultValue(0)] int page)
{
var blogPosts = db.BlogPosts.ToList()
.OrderByDescending(i => i.PublishTime)
.ToList()
.GetRange(page * 10, 10);
return View(blogPosts);
}
상기 GetRange(page * 10, 10)
호출은 여러 경우, 예컨대 예외를 발생시킬 수 목록에 요소가 10 개 미만이거나 page * 10
색인이 범위를 벗어난 경우
많은 바운드 검사를 통해 해결할 수 있습니다. 이 문제를 해결하는 좀 더 우아한 방법이 있을까요? 가능하다면 10 요소를 반환하는 솔루션을 찾고 있습니다. 그렇지 않으면 null 또는 빈 목록을 반환 할 수 있습니다.
예를 들어, 27 개 소자, 제 1 및 제 2 페이지 (page == 0 || page == 1
)에서 7 개 요소 및 널 (null)/빈 목록을 반환 네 번째 페이지 (page == 3
)를 반환 10 개 요소, 세 번째 페이지 (page == 2
)가 목록을 반환한다.