我的浮动数据为33m / s。我将它们存储在Memory Stream中,以便我可以计算存储数据的平均值。但是,我设法通过使用它来将浮点数据堆叠到内存流中。
byte[] FloatToByte = System.BitConverter.GetBytes(SomeData);
memoryStream.Write(FloatToByte, 0, FloatToByte.Length);
现在我的问题是我想得到堆叠1秒的浮点数据,这会给我33个浮点数据堆叠在内存流中。我想计算33个浮点数据的平均值。那么我如何才能从内存流中获取33个浮点数据呢?有人可以帮忙吗?谢谢
更新 我设法解决了这个问题。谢谢你刚才写的答案。我通过使用队列来处理问题。我想知道为什么我试图使用内存流。第一个回答的人抓住了我的心,谢谢你。对于那些可能像我一样苦苦挣扎的人,我会在下面发布一些代码。
QueueForMicLeft.Enqueue(MicLeft_data);
if(QueueForMicLeft.Count> 30)
{
AverageOfMicLeftData(QueueForMicLeft);
Console.WriteLine("Average_data = " + AverageOfMicLeftData(QueueForMicLeft));
QueueForMicLeft.Dequeue();
}
public static float AverageOfMicLeftData(IEnumerable<float> Collection)
{
float sum = 0;
foreach (float obj in Collection)
sum += obj;
return (sum /30);
}