我有一个代码
foreach (DataColumn dataTableCol in this.dataTable.Columns)
{
bool columnFound = false;
foreach (GRTColumnView uiColumn in descriptor.UIColumns)
{
if (dataTableCol.ColumnName.Equals(uiColumn.Name))
{
columnFound = true;
break;
}
}
if (!columnFound)
{
if (this.dataTable.Columns.Contains(dataTableCol.ColumnName))
this.dataTable.Columns.Remove(dataTableCol.ColumnName);
}
}
如果在另一个集合中找不到它们,我想从集合中删除一些“东西”。
当我运行上述程序时,我得到
修改集合时可能无法执行迭代
“收藏已修改” - 因为删除必须已被击中
那么有什么方法可以实现这样的事情呢?
我能想到的是记下所有要删除的“东西”,然后
foreach( aThing in all_things_to_remove)
remove_from_collection(aThing)
但上面对我来说似乎不是一个好方法,因为我必须做另一个循环并且正在使用额外的内存