📜  c# 从 foreach 中的列表中删除 - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.235000             🧑  作者: Mango

C# 从 foreach 中的列表中删除

在 C# 中使用 foreach 循环遍历列表时,我们可能需要在遍历的过程中删除列表中的元素。不过,foreach 循环不允许在循环过程中修改列表,因此我们需要使用其他方法来实现删除操作。

解决方法

一种可行的解决方法是倒序遍历列表,并使用 RemoveAt() 方法删除元素。因为倒序遍历可以避免在删除元素后发生索引错误的问题。

以下是实现该方法的示例代码:

List<int> myList = new List<int> { 1, 2, 3, 4, 5 };

for (int i = myList.Count - 1; i >= 0; i--)
{
    if (myList[i] % 2 == 0) // 删除偶数
    {
        myList.RemoveAt(i);
    }
}

foreach (int item in myList)
{
    Console.WriteLine(item);
}

代码输出如下:

1
3
5
效果说明

上述代码创建了一个整数列表 myList,其中包含五个元素。然后通过倒序循环的方式遍历该列表,如果列表中的元素是偶数,则使用 RemoveAt() 方法删除该元素。最后使用 foreach 循环遍历其余的元素并输出到控制台。

总结

通过倒序遍历列表并使用 RemoveAt() 方法来删除元素是一种在 foreach 循环中删除列表元素的可行方案。当然,如果需频繁进行修改操作,建议使用 for 循环遍历列表,这样就可以在循环过程中修改列表而不会导致错误。