C# · 12月 29, 2021

C#中的简单循环(移动平均)数组

作为诊断,我想在我的应用程序中显示每秒的周期数. (在第一人称射击游戏中,以秒为单位)

但是我不想显示最新的值,或者是自推出以来的平均值.我想要计算的是最后X值的平均值.

我想,关于储存这些价值观的最好方法,我的问题是.我的第一个想法是创建一个固定大小的数组,所以每个新的值将推出最旧的.这是最好的办法吗?如果是这样,我该如何实现呢?

编辑:
这是我写的类:RRQueue.它继承队列,但强制执行容量并在必要时出队.

编辑2:
Pastebin是如此的passé.现在在a GitHub repo.

解决方法 最简单的选择可能是使用 Queue<T>,因为这提供了您先进先出的行为.只有 Enqueue()你的项目,当你有超过X项目,Dequeue()额外的项目.