変換したいアイテムのコレクションがあります (基本的に、メタデータでラップします)。コレクションの最初のアイテムについては、必要なメタデータをアイテムにラップするだけで完了です。2 番目のアイテムのメタデータは前のアイテムのメタデータに依存しているため、最初のアイテムのメタデータを 2 番目のアイテムに渡したいと考えています。
以下....
object[] A;
A.skip(1)
.Zip( A, (first, second), a => new Metadata( first, second ) );
object
...ではなく 2 番目の入力として使用しているため、機能しませんMetadata
。これは、これまでに見た他のすべてのソリューションに当てはまります (関数の結果ではなく、元のオブジェクトを渡しSelect()
ます)。
Select()
LINQ クエリの最初のアイテムの結果を 2 番目のアイテムにフィードするにはどうすればよいSelect()
ですか?
これを達成するためにループを使用できることはわかっていfor
ますが、この種の問題を処理するためのより機能的な方法がないかどうか疑問に思っています。F# などの関数型言語にはソリューションが必要であり、それを C# の LINQ ソリューションに変換できるかどうか疑問に思っています。ワンライナー ソリューションは特にすばらしいものです。
このようにメタデータを連鎖させることで、フラグやコンテキストなど、重要な情報を 1 つのアイテムから後続のすべてのアイテムに渡すことができます。最終的には、前のアイテムについて知るだけでなく、現在のアイテムのコンテキスト全体について知ることが目標です。現在のアイテムは、後続のすべてのアイテムのコンテキストを変更できます。