Я нашел в образцы MSDN Linq аккуратный метод под названием Fold(), который я хочу использовать. Их пример:
double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
double product =
doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor);
К сожалению, я не могу это компилировать, как в своем примере, так и в моем собственном коде, и я не могу найти нигде в MSDN (например, методы расширения Enumerable или Array), которые упоминают этот метод. Ошибка, которую я получаю, - это обычная старая ошибка "не знаю ничего об этом":
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?)
Я использую другие методы, которые, я считаю, приходят из Linq (например, Select() и Where()), и я использую System.Linq, поэтому я думаю, что все ОК.
Этот метод действительно существует в С# 3.5, и если да, то что я делаю неправильно?