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に存在しますか?存在する場合、何が間違っていますか?
3
参照したサンプルページのパンくずトレイル*をチェックしてください。これは、C#3を将来の製品と呼んでいます。将来の製品は、出荷前に変更されることがよくあります。言及された他の人のように、Enumerable.Aggregateを参照して楽しんでください。:) * Visual C#デベロッパーセンター>ホーム>製品情報>将来のバージョン> 101 LINQサンプル>集計演算子
—
Curt Nichols