我需要从 C# 中的列表<> 中删除一个元素。从之前提供的答案来看,似乎必须通过集合向后循环才能实现这一点。但是,我有一个 IEnumerator 来遍历列表的元素。 代码如下:
IEnumerator<Solution> iterator = solutionsList_.GetEnumerator();
while (iterator.MoveNext())
{
Solution element = iterator.Current;
int flag = dominance_.Compare(solution, element);
if (flag == -1) { // The Individual to insert dominates other
// individuals in the archive
iterator.Remove();} // Delete it from the archive
如果我能找到某种方法从列表<>中删除元素并使用枚举器,那将非常有帮助。
请您参考如下方法:
因为你有一个 List<T> ,那么就没有理由明确获取枚举器。您可以只使用常规循环,然后倒退 - 您将能够毫无问题地删除元素,这是一个代码示例:
var solutionsList_ = new List<int>();
for (var i = solutionsList_.Count - 1; i >= 0; i--)
{
var element = solutionsList_[i];
//if (Some logic)
{
solutionsList_.RemoveAt(i);
}
}
