永发信息网

C# List 分页查询怎么实现

答案:5  悬赏:40  手机版
解决时间 2021-04-05 01:07
  • 提问者网友:温柔港
  • 2021-04-04 17:57
C# List 分页查询怎么实现
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-04-04 18:45
代码如下:

1 public partial class XTeacherFinder
2 {
3 private string m_TeacherId = string.Empty;
4
5 public string TeacherId
6 {
7 get { return m_TeacherId; }
8 set { this.m_TeacherId = value; }
9 }
10
11 private string m_TeacherName = string.Empty;
12
13 public string TeacherName
14 {
15 get { return this.m_TeacherName; }
16 set { this.m_TeacherName = value; }
17 }
18
19 public XTeacherFinder()
20 {
21
22 }
23
24 ///
25 /// 通过ID查找
26 ///

27 ///
28 ///
29 public bool FindTeacherById(XTeacher teacher)
30 {
31 return m_TeacherId == teacher.Id;
32 }
33
34 ///
35 /// 通过名称查找
36 ///

37 ///
38 ///
39 public bool FindTeacherByName(XTeacher teacher)
40 {
41 return m_TeacherName == teacher.Name;
42 }
43
44 ///
45 /// 通过ID和名称查找
46 ///

47 ///
48 ///
49 public bool FindTeacherByIdAndName(XTeacher teacher)
50 {
51 return (m_TeacherName == teacher.Name && m_TeacherId == teacher.Id);
52 }
53 }
全部回答
  • 1楼网友:野慌
  • 2021-04-04 21:25
用一个全局变量记录list下标可以实现吧
  • 2楼网友:夜余生
  • 2021-04-04 20:47
int pageNum=1; //当前页
int ListPageIndex=0; //List中的下标
ListPageIndex=(pageNum-1)*5; //当前页第一条的下标
for(int i=0;i<5;i++)
{
Console.WriteLine(list[ListPageIndex+i].toString());
}
PS:你每次翻页,需要传入 PageSize
下一页就是 +1
上一页就是 -1
  • 3楼网友:鸽屿
  • 2021-04-04 20:04
无语了,这个也能问的出来啊。。。。。下面的是java的代码,几乎是复制过去就能用。。。

public static List getPageList(List list,int currentPage,int maxNum,int pageNum){
int fromIndex = 0; //从哪里开始截取
int toIndex = 0; //截取几个
if(list == null || list.size() == 0)
return null;
//当前页小于或等于总页数时执行
if( currentPage <= pageNum && currentPage != 0){
fromIndex = (currentPage - 1)*maxNum;
if(currentPage == pageNum){
toIndex = list.size();
}
else {
toIndex = currentPage*maxNum;
}
}
return list.subList(fromIndex, toIndex);
}追问C#中没有 list.subList()这个方法追答狂汗!!!!!!那就自己实现啊...把return list.subLIst这行换成下面的代码
List temp = new List();
for(int i=fromIndex;i temp.add(list.get(i));
}
return temp;
  • 4楼网友:独钓一江月
  • 2021-04-04 19:29
使用linq:
//页数
int PageNum=2;
//每一页多少条数据
int Record=5;
//pageList是某一页的数据
var pageList=list.Skip(Record * (PageNum - 1)).Take(Record);
跟是bs和cs是无关的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯