info 是一个引用类型(自定义的实体)
returnList 是 List<info> info类型的一个list泛型。
foreach (info in returnList)
{
if (packInfoDic[info.StoreBase.Item.ID] == "0")
{
if (dialogResult == DialogResult.No)
{
break;
}
{
returnList.Remove(info);//加入这条语句的话就报错
continue;
}
}
}就是想在foreach遍历的时候将returnList中的一些项目删除。
foreach的时候不允许删除需要遍历的项目吗
returnList 是 List<info> info类型的一个list泛型。
foreach (info in returnList)
{
if (packInfoDic[info.StoreBase.Item.ID] == "0")
{
if (dialogResult == DialogResult.No)
{
break;
}
{
returnList.Remove(info);//加入这条语句的话就报错
continue;
}
}
}就是想在foreach遍历的时候将returnList中的一些项目删除。
foreach的时候不允许删除需要遍历的项目吗
解决方案 »
- c#写文件,遍历目录的循环影响了写文件内容的循环怎么回事
- 【一百分结贴】这段代码无法释放内存吗?
- 关于自动的向记录的焦点录入数据的问题
- 写出一组数 84、97、50、37、8、51利用冒泡法排序进行排序的过程(不写算法)。
- 在main()用try都无法找到出错原因,如何好,谢谢!
- 100分求一个实现C/S/S的程序
- vs2010的团队做项目怎么办?
- 文件打开方式问题[在线等]
- ComboBox怎么取得输入的值(OnLine)
- OleDb读取Access,“未指定的错误”异常
- pictureBox如何知道鼠标是第几次单击这个控件?
- 请问下,c#中SQL Server访问类中,怎么把数据库里的所有表名都赋到Conbobox里面啊!!!
如果要删除,最好用while
int i = 0;
while(i<returnList.Count)
{
if (packInfoDic[returnList[i].StoreBase.Item.ID] == "0")
{
if (dialogResult == DialogResult.No)
{
break;
}
else
{
returnList.Remove(returnList[i]);
continue;
}
}
i++;
}
同求
做Remove动作会改变索引,foreach 肯定就不行了嘛楼上正解
for(int i=0 实现删除
粗略说foreach不允许改地.
我总感觉这个也会出错,比较说,returnList[0]被删除,那么原来returnList[1]不是就变成returnList[0]了,这样就算不出错,那不是也会跳过原本returnList[1]的判断了吗?
实时js调试工具(IE)
实时js调试工具(IE)
*mainTab是TabControl控件,除了选中的TabPage关闭其他的
*这里就可以动态改变mainTab
*/
foreach (TabPage tab in mainTab.TabPages)
{
if (tab == mainTab.SelectedTab)
{
continue;
}
else
{
mainTab.TabPages.Remove(tab);
}
}
如果要删除,最好用whileC# code
int i = 0;
while(i<returnList.Count)
{
if (packInfoDic[returnList[i].StoreBase.Item.ID] == "0")
{
if (dialogResult == DialogResult.No)
{……
移除最好用下标!
for (int i = myList.Count - 1; i >= 0; i--)
{
myList.Remove(i);
}As above, you can use 'reverse for' to delete every element in 'myList'