3 回答
TA贡献1111条经验 获得超0个赞
您在期间要删除商品foreach,是吗?简单地说,你做不到。这里有一些常用选项:
使用List<T>并RemoveAll与谓语
按索引向后迭代,删除匹配项
for(int i = list.Count - 1; i >= 0; i--) {
if({some test}) list.RemoveAt(i);
}
使用foreach,并将匹配项放入第二个列表中;现在枚举第二个列表,并从第一个列表中删除那些项目(如果您明白我的意思)
TA贡献1846条经验 获得超7个赞
这是一个例子(对错别字表示抱歉)
var itemsToRemove = new ArrayList(); // should use generic List if you can
foreach (var item in originalArrayList) {
if (...) {
itemsToRemove.Add(item);
}
}
foreach (var item in itemsToRemove) {
originalArrayList.Remove(item);
}
或者,如果您使用的是3.5,Linq可使第一步变得容易:
itemsToRemove = originalArrayList
.Where(item => ...)
.ToArray();
foreach (var item in itemsToRemove) {
originalArrayList.Remove(item);
}
将“ ...”替换为确定是否应删除项目的条件。
- 3 回答
- 0 关注
- 473 浏览
添加回答
举报