Ciao a tutti,
ho il seguente dubbio:
Count() di una lista come si comporta? Scorre la lista?
Mi viene questo dubbio in quanto Count è un metodo, non una proprietà.
Mi interessa la risposta per il seguente motivo:
Se fosse stata una proprietà di tipo int, probabilmente count sarebbe stata modificata in automatico ad ogni inserimento/eliminazione di un elemento della lista, di conseguenza la consultazione di count sarebbe stata veloce perchè non ci sarebbe stato niente da calcolare.
Essendo un metodo mi viene il sospetto che count scorra la lista per contare i nodi.
Quindi...
codice:List<Obj> Objs ... int QtaObjs = Objs.Count(); // scorre la lista per la prima volta foreach(Obj obj in Objs) // eseguo altre operazioni, ma scorrendo la lista per la seconda volta { EseguiAltreOperazioni(); }
..sarebbe più veloce così:
codice:List<Obj> Objs ... int QtaObjs = 0; foreach(Obj obj in Objs) // scorro la lista una volta sola { QtaObjs++; EseguiAltreOperazioni(); }
Qualcuno ha già avuto modo di approfondire?
Grazie
Luciano