C# Language Passer et prendre


Exemple

La méthode Skip renvoie une collection à l'exclusion d'un certain nombre d'éléments du début de la collection source. Le nombre d'éléments exclus est le nombre donné en argument. Si la collection contient moins d'éléments que ceux spécifiés dans l'argument, une collection vide est renvoyée.

La méthode Take renvoie une collection contenant un certain nombre d'éléments du début de la collection source. Le nombre d'éléments inclus est le nombre donné en argument. Si la collection contient moins d'éléments que spécifié dans l'argument, la collection renvoyée contiendra les mêmes éléments que la collection source.

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<int> with 0 items

Démo en direct sur .NET Fiddle

Skip and Take sont couramment utilisés ensemble pour paginer les résultats, par exemple:

IEnumerable<T> GetPage<T>(IEnumerable<T> collection, int pageNumber, int resultsPerPage) {
    int startIndex = (pageNumber - 1) * resultsPerPage;
    return collection.Skip(startIndex).Take(resultsPerPage);
}

Avertissement: LINQ to Entities ne prend en charge que les requêtes de saut sur les commandes . Si vous essayez d'utiliser Skip sans passer commande, vous recevrez une exception NotSupportedException avec le message "La méthode 'Skip' est uniquement prise en charge pour les entrées triées dans LINQ to Entities. La méthode 'OrderBy' doit être appelée avant la méthode 'Skip'."