Using C# LINQ - A Practical Overview


Methods - Extract multiple elements

These LINQ methods can be used to extract multiple elements from an IEnumerable<T> sequence. Each method in this chapter provides a different means of defining the criteria determining which sequence elements to remove and which elements to keep.

NOTE: Throughout this chapter, I state that a method "returns a sequence". This is not technically true. The methods in this chapter return an IEnumerable<T>, which is a generator (or an iterator) that can provide a sequence on demand. The difference is subtle, and can often be ignored, but there are some situations where the distinction is important. These special cases will be discussed in more detail in the Advanced Topics course.

Take() method

The Take() method extracts the first n elements (where n is a parameter to the method) from the beginning of the target sequence and returns a new sequence containing only the elements taken.

List<bool> bools = new List<bool> { true, false, true, true, false };
// Will contain { true, false, true }
IEnumerable<bool> result = bools.Take(3);

Skip() method

The Skip() method can be thought of as the exact opposite of the Take() method. Where the Take() method, returns a sequence containing the first n elements of the target sequence, the Skip() method "skips" over the first n elements in the sequence and returns a new sequence containing the remaining elements after the first n elements.

List<bool> bools = new List<bool> { true, false, true, true, false };
// Will contain { true, true, false }
IEnumerable<bool> result = bools.Skip(2);


In this exercise, make the GetThirdFourthFifthItems() method return the 3rd, 4th, and 5th elements of the provided sequence.

Create your playground on
This playground was created on, our hands-on, knowledge-sharing platform for developers.
Go to
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
Online Participants