为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中获取列表的前N个元素?

如何在C#中获取列表的前N个元素?

C#
牧羊人nacy 2019-11-08 10:48:05
我想使用Linq查询项目中的公交车时刻表,以便在任何时候都可以获取下5个公交车到达时间。如何将查询限制在前5个结果中?更一般而言,如何在C#中获取列表的一部分?(在Python中,我将mylist[:5]用来获取前5个元素。)
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

var firstFiveItems = myList.Take(5);

或切片:


var secondFiveItems = myList.Skip(5).Take(5);

当然,根据某种顺序获得前五个项目通常很方便:


var firstFiveArrivals = myList.OrderBy(i => i.ArrivalTime).Take(5);


查看完整回答
反对 回复 2019-11-08
?
慕容3067478

TA贡献1773条经验 获得超3个赞

就像pagination您可以使用以下公式进行服用slice of list or elements:


var slice = myList.Skip((pageNumber - 1) * pageSize)

                  .Take(pageSize);

示例1:前五个项目


var pageNumber = 1;

var pageSize = 5;

示例2:后五个项目


var pageNumber = 2;

var pageSize = 5;

示例3:前五个项目


var pageNumber = 3;

var pageSize = 5;

如果通知配方参数pageSize = 5并且pageNumber正在更改,则要更改切片中的项目数,请更改pageSize。


查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 2012 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信