title: Good Design Pattern for C# Calculation Engines
body: <p>I am creating a calculation engine, calculation has 4 levels </p>
  
  <ol>
  <li>LevelA1 , A2</li>
  <li>LevelB</li>
  <li>LevelC</li>
  <li>LevelD</li>
  </ol>
  
  <p>To calculate LevelA2 we need to calculate LevelD first and to calculate LevelD we need LevelC first output first and LevelB we need LevelA1.</p>
  
  <p>Now During the calculation several intermediary values will be calculated at each level which we need to output at the end of calculations.</p>
  
  <p>There are around 50 input fields(a collection of these fields) and almost similar count for the calculation output fields.</p>
  
  <p>I would like to know a design pattern which is a best fit in this case.
  Few specific question:</p>
  
  <ul>
  <li>During the calculations should I keep updating the input list during the calculations and output it since, final output is combination of inputs and outputs.</li>
  <li>or Should I have separate classes for each level of outputs and pass that output to the next level as we progress?</li>
  </ul>
  
  <p>Thanks In Advance!!!</p>