Paginare i risultati di una query LINQ con Skip e Take

di Stefano Mostarda, in LINQ,

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
https://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
https://www.winfxitalia.com/script/28/Recuperare-Oggetti-Certo-Tipo-Pagina-ASP.NET-LINQ.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi