Skip to main content
 首页 » 编程设计

c#之在 C# 中使用 IEnumerator 从集合中删除元素

2024年01月31日25davidwang456

我需要从 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); 
    } 
}