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 に本当に存在しますか? もしそうなら、何が間違っていますか?