首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集合已被修改;枚举操作可能不会执行。异常

集合已被修改;枚举操作可能不会执行。异常
EN

Stack Overflow用户
提问于 2012-09-08 08:54:33
回答 1查看 1.3K关注 0票数 1

这段代码给了我和异常

集合已被修改;枚举操作可能不会执行

我使用实体框架来处理数据

代码语言:javascript
复制
            foreach (OfflineMessage omc in _offMsgs)
            {

                var OimDB = new OimDBEntities();

                if (omc.MsgTo == e.MessageData.ToHeader.Uri)
                {
                    var offlineMessage = new OfflineMessage
                    {
                        Delivered = false,
                        MsgContent = omc.MsgContent,
                        MsgFrom = omc.MsgFrom,
                        MsgTime = omc.MsgTime,
                        MsgTo = omc.MsgTo,
                        ID = OimDB.OfflineMessages.NextId(f => f.ID)

                    };

                    oimRepository.InsertOIM(offlineMessage);

                    //InsertData(omc.MsgFrom, omc.MsgTo, omc.MsgContent, omc.MsgTime);
                }
            }
            _toHeader = e.MessageData.ToHeader.Uri;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-08 08:58:50

代码语言:javascript
复制
foreach (OfflineMessage omc in _offMsgs)
                {
                    if (omc.MsgTo == _toHeader)
                    {
                        _offMsgs.Remove(omc);
                    }
                }

在迭代集合时,要从集合中移除元素。你不能这么做。与其删除,不如将它们添加到临时列表中,然后在foreach循环之后删除项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12329395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档