我有我想要看起来像这样的代码: List<Type> Os; … foreach (Type o in Os) if (o.cond) return; // Quitting early is important for my case! else Os.Remove(o); … // Other code 这是行不通的,因为当你在这个列表的foreach循环中时,你不能从列表中删除: 有没有一种常见的方法来解决这个问题? 如果需要,我可以切换到不同的types。 选项2: List<Type> Os; … while (Os.Count != 0) if (Os[0].cond) return; else Os.RemoveAt(0); … // Other code 丑,但它应该工作。