有一个Array,需要将里面存在超过SESSION_TIME_OUT阀值的记录删掉,先有代码如下
foreach (myData Data in tempArray)
{
if (((DateTime.Now.Ticks - Data.reqTS.Ticks)/1000) > SESSION_TIME_OUT)
{
tempArray.Remove(Data);
}
}执行的时候总是报错:
2010-12-27 11:40:02:System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()一旦一条记录移除后,array就改变了,MoveNext()指令就不能正常运行了。我估计我的实现方法不对,请问正常情况该如何操作。
foreach (myData Data in tempArray)
{
if (((DateTime.Now.Ticks - Data.reqTS.Ticks)/1000) > SESSION_TIME_OUT)
{
tempArray.Remove(Data);
}
}执行的时候总是报错:
2010-12-27 11:40:02:System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()一旦一条记录移除后,array就改变了,MoveNext()指令就不能正常运行了。我估计我的实现方法不对,请问正常情况该如何操作。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货