C# List 分页查询怎么实现

list中有10条数据,然后进行分页查询,每页查询5条,这里的list就像数据库一样。求解决!!!List<String>list=newList<String>();l... list中有10条数据,然后进行分页查询,每页查询5条,这里的list就像数据库一样。
求解决!!!

List<String> list =new List<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
......
在C# windform中实现。。。
展开
 我来答
百度网友a175029de
推荐于2016-08-08 · TA获得超过287个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:244万
展开全部
无语了,这个也能问的出来啊。。。。。下面的是java的代码,几乎是复制过去就能用。。。
/**
* 分页方法
*@returnType:List<Object>
* @param list 源数据
* @param currentPage 当前页
* @param maxNum 每页显示几条
* @param pageNum 总页数
* @return
*/
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<toIndex;i++){
temp.add(list.get(i));
}
return temp;
jack87918
推荐于2018-03-19 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1453万
展开全部
使用linq:
//页数
int PageNum=2;

//每一页多少条数据
int Record=5;

//pageList是某一页的数据
var pageList=list.Skip(Record * (PageNum - 1)).Take(Record);

跟是bs和cs是无关的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylnsky
2012-04-06
知道答主
回答量:28
采纳率:0%
帮助的人:24.7万
展开全部
用一个全局变量记录list下标可以实现吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2016-03-09 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2926万
展开全部
代码如下:

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 /// <summary>
25 /// 通过ID查找
26 /// </summary>
27 /// <param name="teacher"></param>
28 /// <returns></returns>
29 public bool FindTeacherById(XTeacher teacher)
30 {
31 return m_TeacherId == teacher.Id;
32 }
33
34 /// <summary>
35 /// 通过名称查找
36 /// </summary>
37 /// <param name="teacher"></param>
38 /// <returns></returns>
39 public bool FindTeacherByName(XTeacher teacher)
40 {
41 return m_TeacherName == teacher.Name;
42 }
43
44 /// <summary>
45 /// 通过ID和名称查找
46 /// </summary>
47 /// <param name="teacher"></param>
48 /// <returns></returns>
49 public bool FindTeacherByIdAndName(XTeacher teacher)
50 {
51 return (m_TeacherName == teacher.Name && m_TeacherId == teacher.Id);
52 }
53 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正怒月神
2012-04-09 · TA获得超过1157个赞
知道小有建树答主
回答量:710
采纳率:100%
帮助的人:500万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式