private void ProcessAllTimeSteps(IDfsFile outputDfs) { var nTimes = _dfsInput.FileInfo.TimeAxis.NumberOfTimeSteps; var nItems = _dfsInput.ItemInfo.Count; List <float[]> outdatalist = new List <float[]>(); int timestep0 = 0; for (int item = 1; item <= nItems; ++item) { var indatatime = _dfsInput.ReadItemTimeStep(item, timestep0); var indata = (float[])indatatime.Data; outdatalist.Add(indata); } // from step 1 and onwards for (int timestep = 1; timestep < nTimes; timestep++) { for (int item = 1; item <= nItems; ++item) { var indatatime = _dfsInput.ReadItemTimeStep(item, timestep); var indata = (float[])indatatime.Data; // sum data outdatalist[item - 1] = outdatalist[item - 1].Zip(indata, (x, y) => x + y).ToArray(); } } for (int item = 1; item <= nItems; ++item) { outdatalist[item - 1] = outdatalist[item - 1].Select( x => x / Convert.ToSingle(nTimes)).ToArray(); outputDfs.WriteItemTimeStepNext(timestep0, outdatalist[item - 1]); } // write all steps (the same) for (int timestep = 0; timestep < nTimes; timestep++) { for (int item = 1; item <= nItems; ++item) { var indatatime = _dfsInput.ReadItemTimeStep(item, timestep); //outputDfs.WriteItemTimeStepNext(timestep, outdatalist[item - 1]); // indatatime.Time outputDfs.WriteItemTimeStep(item, timestep, indatatime.Time, outdatalist[item - 1]); // indatatime.Time } } }