私は、IEnumerable オブジェクトを頻繁に処理し、そのオブジェクトをループして、直前および直後の n 個のオブジェクトに依存する各要素の計算を実行する必要があります。
一般的な例の 1 つはローリング平均の計算ですが、計算がそれよりも複雑で、リストの各要素の複数のフィールドに依存する場合もあります。
ループを構成する最良の方法については、私にはよくわかりません。効率は重要ですが、保守性と可読性はより重要です。
時々、List に変換してから for ループを使用して要素 [i-1]、[i]、[i+1] を取得し、計算を実行します。
それ以外の場合は、IEnumerable として保持しますが、前のいくつかの要素を「キャッシュ」して、foreach ループで [i+1] に到達するまで i の計算を行わないようにします。
- .Previous メソッドと .Next メソッドを使用できるように、リンク リストの使用も検討しました。
どのテクニックを使用するのが最適かについての提案はありますか?