一般使用格式为

int pagesize  = 分页大小(每一页大小)
int pageindex = 第几页(一般这个变量是随循环递增的)
使用方法
.Skip(pagesize*pageindex).Take(pagesize)

.Skip()   忽略数,表示从哪里开始分页

.Take()  表示每一页截取多少个记录

注意 ,数列是从0开始的,也就是说,第一个是 0,第二个是 1 ... ...

以上方法结合,截取的只是一页,需要在循环中使用,不断截取下一页

例如

{1,2,3,4,5,6,7,8,9,10}
.Skip().Take() //忽略5个数,即从第(5+1)个数开始截!共截取4个
输出 6,7,8,9

再来看看另一个例子

  

            List<string> Name = new List<string> {
"张三1","李四2","王朝3","马汉4","张龙5", "赵虎6","王喜7","是谁8","卢小鱼9", "哈哈10","杀敌数11"
};
var item1 = Name.Skip().Take();
foreach (var i in item1)
{
Console.WriteLine(i);
}
输出
赵虎6
王喜7
是谁8
卢小鱼9

Skip(5),不是指从第 5 个开始截,而是指 忽略前面的 5 个

这样理解了吧?

但是,前面的例子,只能截取一段区间的内容,不算分页。下面给出简单的分页例子。

在C# 控制台中的写法(为了便于理解,请复制到你的VS中运行测试)

using System;
using System.Collections.Generic;
using System.Linq; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
List<string> Name = new List<string> { //数据
"张三1","李四2","王朝3","马汉4","张龙5", "赵虎6","王喜7","是谁8","卢小鱼9", "大侠","超人"
};
int pagesize = ; //每一页的个数
for (int i = ; i * pagesize < Name.Count; i++) //i 默认值为 0,用 i 表示页数
{
var items = Name.Skip(i * pagesize).Take(pagesize); //截取第 i 页
Console.WriteLine($"第{i + 1}页");
foreach (var item in items) //输出每一页的内容
{
Console.WriteLine(" " + item);
}
}
Console.ReadKey();
} }
}
输出
第1页
张三1
李四2
王朝3
马汉4
第2页
张龙5
赵虎6
王喜7
是谁8
第3页
卢小鱼9
哈哈10
杀敌数11

那么,怎么在 ASP.NET Core/Entity Frame Core 中应用呢?

假设 有一个新闻列表页面,如下

我的思路是,

每次只截取一页,用户点击第几页,就截第几页的列表。

这样省去了循环、算法实现的复杂性。

例子

        /// <summary>
/// 获取第 pageIndex 页的新闻列表
/// </summary>
/// <param name="pageSize">每一页的大小</param>
/// <param name="pageIndex">第几页</param>
public IEnumerable<News> Test(int pageSize,int pageIndex)
{
var NewsLists = _db.News.ToList(); //从数据库中获取 News表的数据
var items = NewsLists.Skip(pageSize * (pageIndex - )).Take(pageSize); //第几页的列表
return items;
}

当然,上面的例子,只是简单地截取了一页,并返回一个对象。未对数据进行任何处理。

如果你要,一次性获取数据后,对数据分页用一个分页后的列表,这是很麻烦的。

把数据假设为一维,分页后的数据相当于二维。

有时也不一定需要一下子查看所有的列表,当数据要分成成白上千时,而用户只看了一页~~~~~。

------------

本人是刚刚入门地菜鸟,水平有限,恳请批评。

C#/Entity Frame Core 使用Linq 进行分页 .Skip() .Take() 的使用方法的更多相关文章

  1. [转]在Entity Framework中使用LINQ语句分页

    本文转自:http://diaosbook.com/Post/2012/9/21/linq-paging-in-entity-framework 我们知道,内存分页效率很低.并且,如果是WebForm ...

  2. Entity Framework Core今日所得:避免 IEnumerable 以及 IQueryable 陷阱

    避免 IEnumerable 以及 IQueryable 陷阱: IEnumerable示用Linq会先去数据库查询所有记录,然后再条件查询. IQueryable接口派生自IEnumerable,但 ...

  3. Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 排序、筛选、分页以及分组

    Sorting, filtering, paging, and grouping 7 of 8 people found this helpful By Tom Dykstra The Contoso ...

  4. UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?

    选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...

  5. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  6. ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  7. Entity Framework Core 1.1 升级通告

    原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...

  8. Entity Framework Core 1.1 Preview 1 简介

    实体框架核心(EF Core)是Entity Framework的一个轻量级,可扩展和跨平台版本. 10月25日,Entity Framework Core 1.1 Preview 1发布了. 升级到 ...

  9. Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 更新关系数据

    Updating related data¶ 7 of 7 people found this helpful The Contoso University sample web applicatio ...

随机推荐

  1. JavaScript数据结构-4.栈操作

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. golang-开发配置

    环境变量配置 Windows GOROOT GOROOT = D:\ProgramDev\Go GOROOT GOROOT = D:\WorkSpace\goProjects GOBIN GOBIN ...

  3. Java 正则表达式 中的 任意字符

    原来正则表达式中的"."代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试"[.\\n]"不生效,可以使用"\\ ...

  4. 多线程编程(一)-Semaphore(信号量)的使用

    Semaphore的介绍 单词Semaphore的中文含义就是信号.信号系统的意思,此类的主要作用就是限制线程并发的数量. 举个例子,一个屋子里有10个人,但只有一个窄门可以出去,这个窄门一次最多只能 ...

  5. 介绍Windows Azure HDInsight服务的Hadoop Storm的视频

    介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...

  6. SQL常用性能相关脚本

    --调试语句性能前记得清空执行计划 每次执行需优化SQL前,带上清除缓存的设置SQL. 平常在进行SQL Server性能优化时,为了确保真实还原性能问题,我们需要关闭SQL Server自身的执行计 ...

  7. ASP.NET站点部署相关

    汤姆大叔的部署指南:http://www.cnblogs.com/TomXu/archive/2011/11/25/2263050.html 中文目录: 部署介绍 --(英文版连接) 部署SQL Se ...

  8. oracle 数据库添加Java方法

    create or replace and compile java source named "Bitconverter" aspublic class Bitconverter ...

  9. [转]emailjs-smtp-client

    本文转自:https://github.com/emailjs/emailjs-smtp-client/blob/master/README.md SMTP Client SMTP Client al ...

  10. 令人头疼的Connection Reset

    背景: 要爬取某网站的数据,数据每页10条,有很多页(形式如同table表格).使用HttpClient 逐行逐页爬取数据,但在循环爬取多次时,总会在不确定的位置报错 在检查代码逻辑无果之后,开始疯狂 ...