Ho trovato negli esempi Linq di MSDN un metodo accurato chiamato Fold () che desidero utilizzare. Il loro esempio:
double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
double product =
doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor);
Sfortunatamente, non riesco a farlo compilare, né nel loro esempio né nel mio codice, e non riesco a trovare nessun altro in MSDN (come i metodi di estensione Enumerable o Array) che menzionano questo metodo. L'errore che ricevo è un semplice vecchio errore "non so nulla di questo":
error CS1061: 'System.Array' does not contain a definition for 'Fold' and no
extension method 'Fold' accepting a first argument of type 'System.Array' could
be found (are you missing a using directive or an assembly reference?)
Sto usando altri metodi che credo provengano da Linq (come Select () e Where ()), e sto "usando System.Linq", quindi penso che sia tutto OK.
Questo metodo esiste davvero in C # 3.5 e, in tal caso, cosa sto facendo di sbagliato?