干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护

这篇具有很好参考价值的文章主要介绍了干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【前言】

干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护,比其它的分页方式强多了,不信你自己看。

 文章来源地址https://www.toymoban.com/news/detail-640559.html

【正文】

支持.Net Core(2.0及以上)与.Net Framework(4.5及以上)

可以部署在Docker, Windows, Linux, Mac。

 

从NuGet引入DeveloperSharp包,然后像如下那样使用分页功能:

using DeveloperSharp.Extension;
--------------------------

var Page1 = DataAll.PagePartition(20, 5);

其中,要被分页的DataAll对象可以是List<T>、IQueryable<T>、IEnumerable<T>、等任何集合类型。

PagePartition方法的第一个参数是“页大小”,第二个参数是“页序号”,即:PagePartition<T>(int pageSize, int pageIndex)

分页后的返回值Page1的类型是:PagePiece<IEnumerable<T>>,它包含分页后的数据集、总页数、总数据、当前页码、等等一系列“分页”后经常会用到的数据。PagePiece<IEnumerable<T>>对象内包含的属性的详细说明如下:

DataList
声明:public IEnumerable<T> DataList;
用途:IEnumerable<T> --当前页的数据

PageSize
声明:public int PageSize;
用途:int --页面大小

TotalPageNumber
声明:public int TotalPageNumber;
用途:int --总页数

TotalRecordNumber
声明:public int TotalRecordNumber;
用途:int --记录总数

CurrentStartIndex
声明:public int CurrentStartIndex;
用途:int --当前页的记录起始编号

CurrentEndIndex
声明:public int CurrentEndIndex;
用途:int --当前页的记录结束编号

CurrentPageSize
声明:public int CurrentPageSize;
用途:int --当前页的记录数量

CurrentPageIndex
声明:public int CurrentPageIndex;
用途:int --当前页码

以上,即是全网最简单的“分页”方法。此方法不仅简单,还有两大额外好处。

其一是:方法返回对象中,已自动包含了“分页”后后续操作所需的全部相关数据(见上述8个),不需再做额外计算处理。

其二是:此方法已自动处理过传入“页序号”为负数、或、大于总页数、等等意外情况,稳定性极高。

 

运行有问题,需要技术支持?以及bug提交通道,请添加微信:894988403

运行有问题,需要技术支持?以及bug提交通道,请添加微信:894988403

 

文章首发于公众号【.Net数字智慧化基地】,欢迎大家关注。

干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护

【.Net数字智慧化基地】:本号长期专注于.Net技术、软件架构、人工智能、工业互联网、智能制造、等领域。作者早年毕业于一流大学并已是IT科技领域成功人士。本号致力于提高圈内整体技术素养,为各类初、中、高级技术人员提供量身定制的个人成长服务,助力升职加薪。本号同时也为有数字化转型需求的各类企业提供深度咨询、指导服务。

 

【前言】

干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护,比其它的分页方式强多了,不信你自己看。

 

【正文】

支持.Net Core(2.0及以上)与.Net Framework(4.5及以上)

可以部署在Docker, Windows, Linux, Mac。

 

从NuGet引入DeveloperSharp包,然后像如下那样使用分页功能:

using DeveloperSharp.Extension;
--------------------------

var Page1 = DataAll.PagePartition(20, 5);

其中,要被分页的DataAll对象可以是List<T>、IQueryable<T>、IEnumerable<T>、等任何集合类型。

PagePartition方法的第一个参数是“页大小”,第二个参数是“页序号”,即:PagePartition<T>(int pageSize, int pageIndex)

分页后的返回值Page1的类型是:PagePiece<IEnumerable<T>>,它包含分页后的数据集、总页数、总数据、当前页码、等等一系列“分页”后经常会用到的数据。PagePiece<IEnumerable<T>>对象内包含的属性的详细说明如下:

DataList
声明:public IEnumerable<T> DataList;
用途:IEnumerable<T> --当前页的数据

PageSize
声明:public int PageSize;
用途:int --页面大小

TotalPageNumber
声明:public int TotalPageNumber;
用途:int --总页数

TotalRecordNumber
声明:public int TotalRecordNumber;
用途:int --记录总数

CurrentStartIndex
声明:public int CurrentStartIndex;
用途:int --当前页的记录起始编号

CurrentEndIndex
声明:public int CurrentEndIndex;
用途:int --当前页的记录结束编号

CurrentPageSize
声明:public int CurrentPageSize;
用途:int --当前页的记录数量

CurrentPageIndex
声明:public int CurrentPageIndex;
用途:int --当前页码

以上,即是全网最简单的“分页”方法。此方法不仅简单,还有两大额外好处。

其一是:方法返回对象中,已自动包含了“分页”后后续操作所需的全部相关数据(见上述8个),不需再做额外计算处理。

其二是:此方法已自动处理过传入“页序号”为负数、或、大于总页数、等等意外情况,稳定性极高。

 

运行有问题,需要技术支持?以及bug提交通道,请添加微信:894988403

运行有问题,需要技术支持?以及bug提交通道,请添加微信:894988403

 

文章首发于公众号【.Net数字智慧化基地】,欢迎大家关注。

干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护

【.Net数字智慧化基地】:本号长期专注于.Net技术、软件架构、人工智能、工业互联网、智能制造、等领域。作者早年毕业于一流大学并已是IT科技领域成功人士。本号致力于提高圈内整体技术素养,为各类初、中、高级技术人员提供量身定制的个人成长服务,助力升职加薪。本号同时也为有数字化转型需求的各类企业提供深度咨询、指导服务。

 

到了这里,关于干了这么多年C#,后悔没早点用这种“分页”,简单/高效/易维护的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 唱衰这么多年,PHP 仍然还是你大爷!

    Sealos 公众号已接入了 GPT-4,完全免费!欢迎前来调戏👇 本文详细探讨了 PHP 在互联网中的广泛应用和重要性。文章通过大量的数据和事实来证明 PHP 仍然是最受欢迎的编程语言之一,占据了 77.2% 的市场份额,远超其他编程语言。 原文链接: https://timotijhof.net/posts/2023/an-inte

    2024年02月09日
    浏览(44)
  • 用了这么多年Rust终于搞明白了内存分布!

    Rust作为一门学习曲线十分陡峭的语言,掌握其核心基础数据结构的内存分布对学习Rust会有很大的帮助,即使对于已经熟悉Rust的同学,深入数据结构分布也能帮助到调优Rust程序。 接下来,我会由浅入深仔细介绍Rust的各个数据结构在内存中的分布情况,帮助大家学习Rust。 先

    2024年02月02日
    浏览(51)
  • C#自定义异常就这么简单

    C#是一种强类型语言,可以捕获和处理各种异常,从而帮助我们发现程序中出现的错误。在程序开发过程中,如果需要找到特定的错误情况并处理,这时就需要创建自定义异常。本文将介绍如何在C#中创建和使用自定义异常。 1、什么是异常? 异常是指在程序执行期间发生的错

    2024年02月03日
    浏览(48)
  • 微服务 Spring Cloud 6,用了这么多年Docker容器,殊不知你还有这么多弯弯绕

    大家好,我是哪吒。 单体应用拆分成微服务后,能够实现快速开发迭代,但因为小服务太多,导致测试和部署的成本提高。 单体应用中,将Spring Boot工程打包成一个war包,然后部署在Linux服务器的Tomcat中就可以了。 拆分成微服务后,修改一个需求,可能会涉及多个微服务,这

    2024年02月05日
    浏览(54)
  • 这么分页,小心有坑

    生产上有个导报表功能,工作了很长一段时间一直都很稳,没出现过什么问题,最近运营同学突然反馈导出来的数据和实际的对不上,经过排查发现导出的数据有重复,也有的没导出来。 由于我们提前生成好数据(每天会truncate重新生成),所以导出的逻辑非常简单,不需要

    2024年02月14日
    浏览(34)
  • 如何把pdf转成cad版本?这种转换方法非常简单

    将PDF转换成CAD格式的优势在于,CAD格式通常是用于工程设计和绘图的标准格式。这种格式的文件可以在计算机上进行编辑和修改,而不需要纸质副本。此外,CAD文件通常可以与其他CAD软件进行交互,从而使得工程设计和绘图过程更加高效和精确。那么怎么转换呢?教大家一种

    2024年02月14日
    浏览(48)
  • 工作这么久了,还不懂如何使用纯前端实现分页吗?-假如后端一股脑返回给你所有数据,让你自个实现分页该怎么办

    有这么个场景,后端接口的列表数据没有做分页给我,相当于是直接返回所有的列表数据,比如有100条就返回100,但是前端显示,则需要做成分页,比如10条为一页。 假如你用vue来实现,思路就是将数据切割,然后分批显示。 所以可以使用 computed 计算属性和 v-for 指令来实现

    2024年04月17日
    浏览(65)
  • MySQL超详细安装教程 手把手教你安装MySQL到使用MySQL 最简单的MySQL安装方式,这种方式装,卸载也简单

    目录 MySQL 压缩包下载地址:? 下载方式: 安装步骤: 一、解压下载的文件: 二、给解压的文件改名? ?三、将这个包放到自己想要存放的电脑目录下 ?四、配置环境变量 1、右键我的电脑,选择属性 2、选择环境变量 ?3、找到系统变量里的Path 4、新建环境变量,将mysql文件的b

    2024年02月11日
    浏览(42)
  • 记录--原来前端部署这么简单

    有个朋友说前端技能大家大部分都会,就是部署项目这一块经验都比较稀缺,一直很想学一下。所以在这里写一篇简单的从零开始部署前端项目的全过程,感兴趣的掘友们或者想自己搭建项目部署的可以看一下这篇。 首先我们需要进行环境搭建主要就是 服务器 和 nginx配置

    2024年02月05日
    浏览(56)
  • KMP算法原理原来这么简单

    我觉得这句话说的很好: kmp算法关键在于:在当前对文本串和模式串检索的过程中,若出现了不匹配,如何充分利用已经匹配的部分,来继续接下来的检索。 暴力解法就是两层for循环,每次都一对一的匹配,如果匹配错误就文本串开始位置加1,继续下一次 前缀表的作用就是

    2023年04月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包