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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Change tracking e composition in Entity Framework
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste


