public void UpdateFallingPieces() { Queue <string> keysToRemove = new Queue <string>(); foreach (string key in _fallingPieces.Keys) { FallingPiece p = _fallingPieces[key]; p.UpdatePiece(); if (p.VerticalOffset == 0) { keysToRemove.Enqueue(key); } } while (keysToRemove.Count > 0) { _fallingPieces.Remove(keysToRemove.Dequeue()); } }