长沙网站制作公司推荐,做画册可以参考哪些网站,网易企业邮箱官网登录入口,如何利用互联网挣钱场景:我有一个 ListISSLogMessage records 数据,需要从里面删除指定内容数据
第一次写成
foreach(var item in records)
{if (item.logMessage.Contains(上传通行记录))records.Remove(item);
}
直接报错,因为foreach 是个迭代器 直接移除它的对象会报…场景:我有一个 ListISSLogMessage records 数据,需要从里面删除指定内容数据
第一次写成
foreach(var item in records)
{if (item.logMessage.Contains(上传通行记录))records.Remove(item);
}
直接报错,因为foreach 是个迭代器 直接移除它的对象会报错
第二次换成 for for (int i 0; i records.Count; i){ISSLogMessage item records[i];item.moduleName ${_gateSentryManager.GateSentryInfo.Name};if (item.logMessage.Contains(上传通行记录))records.Remove(item);}
不报错了,可以跑了,但是有BUG ???
如果 需要移除的数据是相邻的,那么后面的元素将不会移除
出现问题未能删除相邻元素后一个
原因ArrayList的底层结构是数组类型数组删除某个元素时后面所有元素的索引都会往前移而此时for循环的指针是却是往后移动 ..........................
第三次
Listint rids new Listint();for (int i 0; i records.Count; i){ISSLogMessage item records[i];item.moduleName ${_gateSentryManager.GateSentryInfo.Name};if (item.logMessage.Contains(上传通行记录))rids.Add(i);}foreach (int i in rids){records.RemoveAt(i);}
还是有问题 ....................
本着觉得写得有点复杂得想法查了下网络 可以写成 IEnumerator rator records.GetEnumerator();//1.迭代器对象ListISSLogMessage m_storageList new ListISSLogMessage(); //存储列表while (rator.MoveNext()) //2.循环条件{ISSLogMessage item (ISSLogMessage)rator.Current;//3.当前值item.moduleName ${_gateSentryManager.GateSentryInfo.Name};if (!item.logMessage.Contains(上传通行记录))m_storageList.Add(item);}records m_storageList;
还是新添加靠谱啊