首页 / C#开发 / 正文

C#/.NET应用程序编程开发中LINQ查询如何实现一个集合的分页?

3995 2 发布于: 2019-05-31 读完约需2分钟

问题描述

如题,在C#/.NET应用程序编程开发中LINQ查询如何实现一个集合的分页?

在SQL Server数据库中可以使用TOP函数或者OFFSET函数实现分页,在MySQL数据库中,可以使用LIMIT n,m。但在C#/.NET的应用程序编程开发中,有时候可能会需要使用LINQ对一个数据集合(列表)进行分页,应该如何实现呢?

方案一

在C#中,内置了很多LINQ的静态扩展方法,对于对集合进行分页,我们可以使用SkipTake这两个静态扩展名方法。这两个扩展方法均带有一个参数。

其中: Skip表示跳过结果中的前N个元素,返回剩余的元素;Take表示返回结果中的前N个元素。

那么,具体的分页实现代码可以类似如下:

方案二

为了代码的复用,我们还可以将LINQ的分页封装成一个通用的静态扩展方法,如下:

该类定义了两种扩展方法:一种用于IEnumerable,另一种用于IQueryable,你可以将它用于LINQ to ObjectsLINQ to SQL。使用示例如下:

方案三

不使用SkipTake扩展方法实现的迭代方法,如下:

调用示例:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: CRM相关操作

下一篇: C#/.NET应用程序编程开发中如何判断一个集合中是否包含某个指定的元素对象

本文永久链接码友网 » C#/.NET应用程序编程开发中LINQ查询如何实现一个集合的分页?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册