collection.Where(i => i.condition)
.ToList()
.ForEach(i => SomeComplicatedOpInvolving_i);
Non sto cercando risposte che mi dicano che esiste un modo più semplice per farlo, trattalo come un esperimento mentale.Ho ragione nel ritenere che questo snippet sia O (n^3)?
Per prima cosa, ho ragione nel pensare che si tratta di tre cicli? Where()
, ToList()
e ForEach()
?
In secondo luogo, (supponendo che si tratti di tre cicli) ho ragione nel pensare che questo è n alla potenza di 3 nella notazione O grande?
Grazie a tutti.
Non dipende da cosa SomeComplicatedOpInvolving_i? – AndrewC
Se si assume che 'collection' sia di tipo' IEnumerable ', allora sarà O (2 * n), a causa del caricamento lento. –
ebb
Non utilizzare 'ToList' solo perché non si desidera utilizzare un normale ciclo' foreach() ', poiché la creazione e il riempimento dell'elenco sono di gran lunga l'operazione più intensa in questo snippet. – Dykam