C# Language Salta e prendi

Esempio

Il metodo Skip restituisce una collezione escludendo un numero di elementi dall'inizio della raccolta di origine. Il numero di articoli esclusi è il numero dato come argomento. Se nella raccolta sono presenti meno elementi di quelli specificati nell'argomento, viene restituita una raccolta vuota.

Il metodo Take restituisce una raccolta contenente un numero di elementi dall'inizio della raccolta di origine. Il numero di elementi inclusi è il numero indicato come argomento. Se nella raccolta sono presenti meno elementi di quelli specificati nell'argomento, la raccolta restituita conterrà gli stessi elementi della raccolta di origine.

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

Live Demo su .NET Fiddle

Skip and Take sono comunemente usati insieme per impaginare i risultati, ad esempio:

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

Avviso: LINQ to Entities supporta solo Salta sulle query ordinate . Se si tenta di utilizzare Skip senza ordinare, verrà visualizzato NotSupportedException con il messaggio "Il metodo 'Skip' è supportato solo per l'input ordinato in LINQ alle entità. Il metodo 'OrderBy' deve essere chiamato prima del metodo 'Salta'."