📅  最后修改于: 2023-12-03 15:13:50.235000             🧑  作者: Mango
在 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 循环遍历列表,这样就可以在循环过程中修改列表而不会导致错误。