gpt4 book ai didi

c# - 为什么在不修改枚举集合时得到 "Collection was modified; enumeration operation may not execute"?

转载 作者:IT王子 更新时间:2023-10-29 04:42:37 29 4
gpt4 key购买 nike

<分区>

我有两个字符串集合:CollectionA 是系统中存储的对象的 StringCollection 属性,而 CollectionB 是运行时生成的 List。如果存在任何差异,则需要更新 CollectionA 以匹配 CollectionB。因此,我设计了一个我期望的简单 LINQ 方法来执行删除。

var strDifferences = CollectionA.Where(foo => !CollectionB.Contains(foo));
foreach (var strVar in strDifferences) { CollectionA.Remove(strVar); }

但我在 strDifferences 上收到 “集合已修改;枚举操作可能无法执行” 错误...即使它是与正在修改的集合分开的枚举!我最初设计这个明确是为了避免这个错误,因为我的第一个实现会产生它(因为我在 CollectionA 中枚举并且只是在 !CollectionB.Contains(海峡))。任何人都可以深入了解此枚举失败的原因吗?

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com