如何从列表中获取每5个项目

Pan*_*ian 0 c# linq collections list

我有一个包含8个项目的列表.

我需要从列表中获取每5个项目

我试过的代码:

lstRules.ToList()
    .GetRange(((currentPage - 1) * pageSize + 1) - 1, (currentPage * pageSize));
Run Code Online (Sandbox Code Playgroud)

如果CurrentPage = 1 and Pagesize = 5那么aove代码正常工作,因为在这里我通过范围(0,5)...

如果CurrentPage = 2 and PageSize = 5 那样它会抛出如下错误:

"偏移量和长度超出了数组的范围,或者计数大于从索引到源集合末尾的元素数量"

我知道这个错误发生,因为我只有3列表中的项目,我通过范围(5,5)...所以我得到了这个错误..

我的问题是如何解决这个问题?

有没有其他方法从列表中获取数据?

Tig*_*ran 6

你可以这样做:

如果你有最新的pageNumber并且知道你定义的每页有多少记录:recordsPerPage通用查询看起来像这样

var currentPageData = lstRules.ToList().
                          Skip(pageNumber * recordsPerPage).Take(recordsPerPage);
Run Code Online (Sandbox Code Playgroud)