我试图从List<T>检索数据以进行分页。如何在LINQ中做到这一点:

private List<MyData> GetPagingData(int pageNumber)
{
    if (pageNumber == 1)
        return myData.Take(8);

    // What to do here?
}


这适用于第一页。它返回前8条记录。我如何在第2页等上使用此功能...

最佳答案

如果您希望页码从0开始:

private IEnumerable<MyData> GetPagingData(int pageNumber, int perPage)
{
     return myData.Skip(pageNumber * perPage).Take(perPage);
}


如果您希望页码从1开始:

private IEnumerable<MyData> GetPagingData(int pageNumber, int perPage)
{
     return myData.Skip((pageNumber-1) * perPage).Take(perPage);
}

08-26 19:08