В примерах 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», так что я думаю, что все в порядке.
Действительно ли этот метод существует в C # 3.5, и если да, то что я делаю не так?