Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Quale Collection usare

Quando ho bisogno di una collection con chiave-valore senza ombra di dubbio utilizzo la classe HastTable che ho descritto in questo tip.

Il problema della classe HastTable è che adotta un "politica" LIFO ovvero last in-firt out, che è da considerare se per caso utilizziamo la collection per esempio per memorizzare dei parametri , perchè se andiamo a scorrere con un ciclo la collection troveremo la coppia chiave-valore non come l'abbiamo inserita.
Esempio:
HashTable parametri = new HashTable();
parametri.add("Cognome","Caruso");
parametri.add("Nome","Marco");
parametri.add("Citta","Roma");

quindi se vado a scorrere questo hashtable come primo parametro di output otterrò Citta-Roma.

Quindi quando ho bisogno di una collection per memorizzare dei valori che dopo dovrò scorrere(per esempio per stamparli) utilizzo la classe ListDictionary del namespace System.Collection.Specialized, che a differenza del hashTable adotta una politica FIFO, first in -firt out.
Quinid nell'esempio precendente quando scorro la collection la prima coppia sarà Cognome-Caruso.
Solo che l'uso di ListDictionary è consigliato per una collection non superiore ai 10 elementi.

Quindi ancora meglio è utilizzare la classe HybridDictionary che in un primo momento utilizza un ListDictionary per memorizzare gli elementi e quindi sfruttare le maggiori prestazioni e se poi dovesse la collection dovesse aumentare sposta gli elementi in un HastTable.
Questa classe è molto utile quando non si sà il numero di elementi che verranno memorizzati.

Avete mai utilizzato queste classi? qualche feedback?
Categoria: .NET 1.1
lunedì, 06 giu 2005 Ore. 14.00
  • Views Home Page: 301.674
  • Views Posts: 829.199
  • Views Gallerie: 358.923
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003