所属分类:.NET技术 ASP.NET
-----------------------------------------
下面代码,如果不用两个集合,要怎么实现删除集合中的bbb
现程序错误提示为:集合已修改;可能无法执行枚举操作
List<string> myList = new List<string>();
myList.Add("aaa");
myList.Add("bbb");
myList.Add("ccc");
myList.Add("bbb");
foreach (string myStr in myList)
{
if (myStr.ToString() == "bbb")
{
myList.Remove(myStr);
}
}
----------------------------------------------------------------------
for(int i=0;i<List.items.count;i++)
{
if (List[i].ToString() == "bbb")
{
List[i].remove();
}
}
--------------------------------------------------------
不行的,上面的方法我之前有试
--------------------------------------------------------
foreach里的循环变量是一个只读的变量(自己想想为什么哦)
所以可以用楼上的方案解决
--------------------------------------------------------
手头没2005,没法验证
--------------------------------------------------------
for(int i=List.items.count-1;i>0;i--)
{
if(List.items[i].value=="bbb")
{
List.items.removeAt(i);
}
}
--------------------------------------------------------
要从最后一个项往前循环才能删除
--------------------------------------------------------
删除中间的项就影响了集合的循环,会报错
--------------------------------------------------------
学习