#32 - Paginare i risultati di una query LINQ con Skip e Take

Una delle feature fondamentali di un'applicazione performante è la paginazione di dati. Questo è vero sia per applicazioni web che per applicazioni standalone, le quali comunque soffrirebbero se venissero visualizzate decine di migliaia di record senza paginazione.
Fortunatamente, LINQ viene in aiuto semplificando estremamente il processo di recupero di informazioni paginate tramite l'utilizzo dei due metodi, Skip e Take.

Il metodo Skip indica il numero delle righe iniziali che devono essere ignorate, mentre Take stabilisce quanti elementi recuperare; ad esempio, una query che indica uno skip 0 ed un take di 10 recupera i primi 10 elementi.

List<string> persone = new List<string>{
  "Stefano Mostarda",
  "Daniele Bochicchio",
  "Riccardo Golia",
  "Cristian Civera",
  "Marco Leoncini",
  "Alessio Leoncini",
  "Andrea Zani",
  "Stefano Mostarda",
  "Cristian Paparelli",
  "Ugo Lattanzi",
  "Cristian Civera"
};

var q = from p in persone.Skip(5).Take(2) select p;

lv.DataSource = q;
lv.DataBind();

In questo esempio vengono saltati i primi 5 elementi e presi i successivi 2. Ancora una volta LINQ risolve elegantemente un problema con una riga di codice, senza ricorrere a cicli manuali delle collection.

Per approfondimenti si veda:

#30 - Contare le occorrenze di parole in una frase con LINQ
http://www.winfxitalia.com/script/30/Contare-Occorrenze-Parole-Frase-LINQ.aspx

#28 - Recuperare tutti gli oggetti di un certo tipo di una pagina ASP.NET con LINQ
http://www.winfxitalia.com/script/28/Recuperare-Oggetti-Certo-Tipo-Pagina-ASP.NET-LINQ.aspx

Nota: Questo script contiene un allegato.


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Per inserire un commento, devi registrarti alla nostra community.





IN EVIDENZA
MISC