当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在C#中获取列表的前N个元素?》经验,为你挑选了3个好方法。

我想使用Linq来查询我项目中的公交时刻表,以便随时可以获得下一个5次公交车到达时间.如何将查询限制为前5个结果?

更一般地说,我如何在C#中获取一个列表?(在Python中我会mylist[:5]用来获得前5个元素.)



1> Matt Hamilto..:
var firstFiveItems = myList.Take(5);

或切片:

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

当然,按照某种顺序获取前五个项目通常很方便:

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


如果列表中只有3个项目,它会抛出异常吗?或者它需要多达5个?
@bobek:它没有抛出异常.如果没有足够的元素,它只返回它所拥有的东西.

2> netadictos..:

如果有人感兴趣(即使问题没有要求这个版本),在C#2中将是:(我已经编辑了答案,遵循一些建议)

myList.Sort(CLASS_FOR_COMPARER);
List fiveElements = myList.GetRange(0, 5);



3> Sina Lotfi..:

就像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

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有