Selecting a subset of elements in LINQ C# with the Skip operator
July 22, 2014 Leave a comment
The Skip operator is the opposite of Take: it skips the given number of elements in a sequence and selects the rest.
Example data source:
string[] bands = { "ACDC", "Queen", "Aerosmith", "Iron Maiden", "Megadeth", "Metallica", "Cream", "Oasis", "Abba", "Blur", "Chic", "Eurythmics", "Genesis", "INXS", "Midnight Oil", "Kent", "Madness", "Manic Street Preachers" , "Noir Desir", "The Offspring", "Pink Floyd", "Rammstein", "Red Hot Chili Peppers", "Tears for Fears" , "Deep Purple", "KISS"};
We’ll omit the first 10 elements and select the rest:
IEnumerable<string> res = bands.Skip(10); foreach (string item in res) { Console.WriteLine(item); }
The first element to be selected will be “Chic” as that is the 11th items in the array.
The Skip operator is often used together with Take to allow paging in a data collection. Imagine we have a HTML table where we have 10 items on each page. When the user selects page 2 then we want to show items 11 to 20 in the table. The LINQ query looks like this:
IEnumerable<string> res = bands.Skip(10).Take(10); foreach (string item in res) { Console.WriteLine(item); }
View the list of posts on LINQ here.