不用sql语句怎么进行分页

不用sql语句怎么进行分页

潇湘沐
浏览 748回答 3
3回答

largeQ

使用linq的skip take还是比较方便的。

ibeautiful

一共有5000条记录,每页50条记录;那么第2页的记录必然是第51到第100的数据,根据索引把数据过滤出来,显示到页面上就可以了。

牛魔王的故事

这个你可以过滤啊。你的希望应该是:有一个5000条记录的集合,希望能从指定位置开始获取指定数量的一个连续的子集吧?如果你用LinQ可以使用下面的代码public&nbsp;IEnumable&nbsp;GetData(IEnumable&nbsp;source,&nbsp;int&nbsp;startIndex,&nbsp;int&nbsp;size) {&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;source.Skip(startIndex).Take(size); }如果你用的不是LinQ,那么:public&nbsp;IEnumable&nbsp;GetData(IEnumable&nbsp;source,&nbsp;int&nbsp;startIndex,&nbsp;int&nbsp;size) {&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;index&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;foreach(var&nbsp;item&nbsp;in&nbsp;source) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(index&nbsp;<&nbsp;startIndex) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(index&nbsp;-&nbsp;startIndex&nbsp;>&nbsp;size) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;item; }当然,上面的枚举方法不是很好,不过,一般的情况下,你的集合应该能确定类型,比如是LIST或ARRAY等,也就是说能进行下标索引的,此时就更简单了,下面的代码就用数组来实现:public&nbsp;IEnumable&nbsp;GetData(object[]&nbsp;source,&nbsp;int&nbsp;startIndex,&nbsp;int&nbsp;size) {&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;startIndex;&nbsp;i&nbsp;<&nbsp;startIndex&nbsp;+&nbsp;size&nbsp;&&&nbsp;i&nbsp;<&nbsp;source.Length;&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;source[i]; &nbsp;&nbsp;&nbsp;&nbsp;} }
打开App,查看更多内容
随时随地看视频慕课网APP