使用队列来平均9个float值的集合。有时(通常可以正常工作!),我收到以下错误
InvalidOperationException:操作由于对象System.Linq.Enumerable.Average(IEnumerable`1 source)的当前状态而无效
令人反感的行是此代码摘录中的最后一行
private bool OnPersonUpdated(IEvent evt)
{
Event_Update castEvent = evt as Event_Update;
if (castEvent != null)
{
if (peopleDict.ContainsKey(castEvent.id))
{
float xVel = castEvent.velX;
GameObject cubeToMove = peopleDict[castEvent.id];
if (xVel > 0)
{
float xPos = -1f * positionForPerson(castEvent.person);
float dif = xPos - _prevX;
if (dif < .5f)
{
_posQueue.Enqueue(xPos);
}
if (_posQueue.Count >= 10)
{
_posQueue.Dequeue();
}
float avPos = _posQueue.Average();
我意识到没有提供完整的应用程序就很难说出正在发生什么,但是我应该尝试哪些故障排除步骤呢?
一只甜甜圈
相关分类