首页 > 解决方案 > 在不使用任何库的情况下使用 C# Web API 分页大量数据

问题描述

我正在使用 C# 开发 API。在我们的一份报告中,我们需要向客户发送大量数据。为了提供分页,我在库中做了很多搜索,最后想出了自己编写函数的想法。我已经编写了这段代码,它可以根据我的需要工作:

public class PagedList<T>
        {
            public PagedList() { Data = new List<T>(); }
            public List<T> Data { get; set; }
            public List<T> ToPagedList(List<T> req, int PageNumber, int PageSize)
            {
                var result = new List<T>();
                var count = req.Count();
                if (PageNumber * PageSize > count && count - PageNumber * PageSize > PageSize)
                {
                    PageNumber = count / PageSize;
                }
                for (int i = PageSize * (PageNumber - 1); i <= PageSize * PageNumber - 1 && i < count; i++)
                    result.Add(req[i]);
                return result;
            }
        }

该方法将像以下示例一样使用:

result = new MyClass.PagedList<TransactionHistory>().ToPagedList(result, PageNumber, PageSize);

我得到的答案太简单了,我觉得有问题。我会不会在这个选择上犯了错误?

标签: c#apipagination

解决方案


推荐阅读