RexE RexE - 2 months ago 5x
C# Question

How to get first N elements of a list in C#?

I'm teaching myself C# and am doing my first project. I would like to use Linq to query a bus schedule, so that at any time I can get the next 5 bus arrival times. How can I limit my query to the first 5 results?

More generally, how can I take a slice of a list in C#? (In Python I would use mylist[:5] to get the first 5 elements.)

var firstFiveItems = myList.Take(5);

Or to slice:

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

And of course often it's convenient to get the first five items according to some kind of order:

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