Skip and Take C# with Example



Skip and Take C# with Example

The Skip method returns a collection excluding a number of items from the beginning of the source collection. The 
number of items excluded is the number given as an argument. If there are less items in the collection than 
specified in the argument then an empty collection is returned. 
The Take method returns a collection containing a number of elements from the beginning of the source collection. 
The number of items included is the number given as an argument. If there are less items in the collection than 
specified in the argument then the collection returned will contain the same elements as the source collection. 
var values = new [] { 5, 4, 3, 2, 1 }; 
var skipTwo = values.Skip(2); // { 3, 2, 1 } 
var takeThree = values.Take(3); // { 5, 4, 3 } 
var skipOneTakeTwo = values.Skip(1).Take(2); // { 4, 3 } 
var takeZero = values.Take(0); //  An  IEnumerable  with  0  items 
Live Demo on .NET Fiddle 
Skip and Take are commonly used together to paginate results, for instance: 
IEnumerable GetPage(IEnumerable collection, int pageNumber, int resultsPerPage) { 
int startIndex = (pageNumber - 1) * resultsPerPage; 
return collection.Skip(startIndex).Take(resultsPerPage); 
} 
Warning: LINQ to Entities only supports Skip on ordered queries. If you try to use Skip without ordering 
you will get a NotSupportedException with the message "The method 'Skip' is only supported for sorted 
input in LINQ to Entities. The method 'OrderBy' must be called before the method 'Skip'." 

0 Comment's

Comment Form

Submit Comment