public void RemoveAllStates(params CharacterState[] statesToKeep) { for (int i = states.Count - 1; i >= 0; i--) { if (!states[i].In(statesToKeep)) { RemoveState(states[i]); } } }