您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在c#中使用foreach循环时修改Collection

在c#中使用foreach循环时修改Collection

你做不到 从文档中获取IEnumerator<T>

只要集合保持不变,枚举数将保持有效。如果对集合进行了更改(例如添加修改删除元素),则枚举数将无法恢复,并且其行为是不确定的。

替代方法是:

这些选择的最后一个是类似LINQ的解决方案,您通常在其中编写:

var newList = oldList.Where(x => ShouldBeRetained(x)).ToList();

ShouldBeRetained当然,您希望使用什么逻辑。)ToList()仅当您实际需要列表时才需要调用。这导致了更具说明性的代码,通常更易于阅读。我无法轻易地猜出您的原始循环是要做什么的(此刻似乎很奇怪),而如果您可以仅根据项目来表达逻辑,则可以更加清楚。

c# 2022/1/1 18:38:33 有390人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶