objTempList = objParentList;
foreach (var item in objTempList)
{
objChildList = objList.AsQueryable()
.Where(x => x._parentId == item.filedbid)
.ToList<FileObjectView>();
if (objChildList != null)
{
foreach (var child in objChildList)
{
objParentList.Add(child);
}
}
}
以上是我的代码,问题是objTempList = objParentList
objParentList
有10行分配给objTempList
现在我正在进行下一步foreach
并在objParentList
中添加更多行,其自动反映在列表objTempList
中,我的循环正在给出错误消息。
答案 0 :(得分:0)
如果要将objParentList
的内容分配给objTempList
而不会无意中修改foreach循环中的objTempList
,则需要创建objParentList
的新实例并将其分配给objTempList
。
这样,将列表项添加到循环内部的父列表中不会引发异常,因为您已将原始副本分配给objTempList
而不是引用。例如:
objTempList = new List<T>(objParentList);
答案 1 :(得分:-1)
您应该将列表实例分开以避免此错误
objTempList = objParentList.ToList();
foreach (var item in objTempList)
{
objChildList = objList.AsQueryable().Where(x => x._parentId == item.filedbid).ToList();
foreach (var child in objChildList)
objParentList.Add(child);
}