此代码给我和例外
收藏被修改;枚举操作可能无法执行
我使用Entity Framework来处理数据
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;
}
答案 0 :(得分:3)
foreach (OfflineMessage omc in _offMsgs)
{
if (omc.MsgTo == _toHeader)
{
_offMsgs.Remove(omc);
}
}
您正在迭代它时从集合中删除元素。你不能这样做。而不是删除,将它们添加到临时列表,并在foreach循环后,删除您的项目。