I am relatively new to C# and newer to LINQ. I haven't found a good way to do this using LINQ (meaning an example on here that does almost exactly this, lol), but it seems like there should be a way to eliminate one of my loops.
I have a 2D List of List. I want to make a 2D List of averaged chunks of data of each of the sub Lists.
Example input:
averageSize = 2
input List = {{1,2,3,4},
{5,6,7,8},
{9,10,11,12}}
expected output List:
{{1.5,3.5},
{5.5,7.5},
{9.5, 11.5}}
I have working code with a foreach loop and a for loop. waveData is the input 2D list, averageSize is the number of values to average together
int tempIndex = 0;
List<List<double>> averages = new List<List<double>>();
foreach (List<double> phaseData in waveData)
{
averages.Add(new List<double> { });
for (int i = 0; i <= (phaseData.Count-averageSize); i+= averageSize)
{
averages[tempIndex].Add(phaseData.GetRange(i, averageSize).Average());
}
tempIndex++;
}