#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
-
#61 - Cambiare la posizione alle immagini di Deep Zoom in Silverlight 3.0
-
#164 - Eseguire una stored procedure tramite l'Entity Client di Entity Framework
-
#162 - Caricare un file XML da remoto tramite XDocument e HttpWebRequest
-
Disinstallare la beta 2 prima di installare la RC di VS 2010
-
#979 - ASP.NET ed Entity Framework: Dynamic Data Control
-
Tutti pazzi per il .NET Micro Framework
-
#136 - Utilizzare LINQ per raggruppare gli application pool di IIS in base al tipo di pipeline
-
#140 - Estrarre un elemento in una determinata posizione da una lista non indicizzata con LINQ
-
#137 - Utilizzare i Glyphs per migliorare le performance in WPF
-
Entity Framework ed NHibernate a confronto
-
Entity Framework e le performance con la Like
-
#163 - Personalizzare le installazioni con Windows Installer

















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