LINQ: How to skip one then take the rest of a sequence
C#LinqListLoopsSkipC# Problem Overview
i would like to iterate over the items of a List<T>
, except the first, preserving the order. Is there an elegant way to do it with LINQ using a statement like:
>foreach (var item in list.Skip(1).TakeTheRest()) >{....
I played around with TakeWhile
, but was not successful. Probably there is also another, simple way of doing it?
C# Solutions
Solution 1 - C#
From the documentation for Skip:
> Bypasses a specified number of elements in a sequence and then returns the remaining elements.
So you just need this:
foreach (var item in list.Skip(1))
Solution 2 - C#
Just do:
foreach (var item in input.Skip(1))
There's some more info on the MSDN and a simple example that's downloadable here
Solution 3 - C#
Wouldn't it be...
foreach (var in list.Skip(1).AsEnumerable())