我需要遍历一个 LinkedList<T>
(在 .NET 2.0 中),并根据给定的条件删除所有项目。在 Java 下很容易实现,因为我可以执行以下操作:
Iterator<E> i = list.iterator();
while (i.hasNext()) {
E e = i.next();
if (e == x) {
// Found, so move it to the front,
i.remove();
list.addFirst(x);
// Return it
return x;
}
}
很遗憾,在.NET中的
IEnumerator<T>
行为(相当于 Iterator<E>
)中没有 remove
方法来从集合中移除当前元素。此外,在 LinkedList<T>
中没有办法访问给定索引处的元素,必须通过从后往前迭代来完成该任务。你有什么好主意吗?非常感谢!