不用sql语句怎么进行分页
3 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
这个你可以过滤啊。
你的希望应该是:有一个5000条记录的集合,希望能从指定位置开始获取指定数量的一个连续的子集吧?
如果你用LinQ可以使用下面的代码
public IEnumable GetData(IEnumable source, int startIndex, int size) { return source.Skip(startIndex).Take(size); }
如果你用的不是LinQ,那么:
public IEnumable GetData(IEnumable source, int startIndex, int size) { int index = 0; foreach(var item in source) { if(index < startIndex) { continue; } if(index - startIndex > size) { break; } yield return item; }
当然,上面的枚举方法不是很好,不过,一般的情况下,你的集合应该能确定类型,比如是LIST或ARRAY等,也就是说能进行下标索引的,此时就更简单了,下面的代码就用数组来实现:
public IEnumable GetData(object[] source, int startIndex, int size) { for(int i = startIndex; i < startIndex + size && i < source.Length; i++) { yield return source[i]; } }
- 3 回答
- 0 关注
- 744 浏览
添加回答
举报
0/150
提交
取消