#134 - Convertire una lista in un Dictionary utilizzando il metodo ToDictionary di LINQ
Molto spesso capita di dover ricercare velocemente gli elementi in una lista. Sebbene una ricerca tramite LINQ sia semplice da scrivere, la sua efficacia in termini di performance non è ottimale in quanto internamente viene usato un semplice ciclo for.
La soluzione ottimale consiste nel creare un Dictionary dove la chiave è il campo di ricerca ed il valore la relativa istanza. In questo modo si può ricercare per chiave in maniera molto più rapida.
var List<Persona> persone = ...; persone.ToDictionary(p => p.CodiceFiscale);
In alcuni casi, nel value del Dictionary non si ha bisogno dell'intero oggetto ma solo di un campo o un sottoinsieme di campi. Per fare questo basta utilizzare il secondo overload del metodo ToDictionary. Questo metodo prevede un secondo parametro rappresentato da una lambda che esprime l'oggetto da mettere nel Value.
persone.ToDictionary(p => p.CodiceFiscale, p => new { p.Nome, p.Cognome });Approfondimenti
-
#169 - Sfruttare msbuild per differenziare il config
-
ASP.NET WebForm ed il falso mito del markup incontrollabile
-
#153 - Invocare servizi WCF da Javascript
-
.NET Framework 4.0 beta 2: ASP.NET 4.0
-
Rilasciata la Silverlight Toolkit October 2009 Release
-
#1007 - Personalizzare il template di edit in ASP.NET Dynamic Data Controls
-
#114 - Caricare immediatamente un grafo di oggetti complesso con Entity Framework
-
Windows Mobile 6.5: HTC Touch2
-
Windows Azure in versione 1.0: annunciata la piattaforma Microsoft per il cloud computing
-
#151 - Disabilitare Aero programmaticamente per incrementare le performance di WPF
-
Usare Entity Framework con ADO.NET Data Services
-
#132 - Utilizzare una funzione come corpo di una lambda in LINQ to Objects

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.