c#中利用foreach删除list中对象
时间: 2023-08-06 10:03:54 浏览: 322
在使用 foreach 循环遍历 List 时,不能直接删除其中的元素,因为这会导致枚举器无效。如果要删除 List 中的元素,可以使用 for 循环或倒序的 foreach 循环。
以下是使用 for 循环删除 List 中对象的示例代码:
```
for (int i = 0; i < list.Count; i++)
{
if (list[i].需要删除的条件)
{
list.RemoveAt(i);
i--;
}
}
```
以下是使用倒序的 foreach 循环删除 List 中对象的示例代码:
```
for (int i = list.Count - 1; i >= 0; i--)
{
if (list[i].需要删除的条件)
{
list.RemoveAt(i);
}
}
```
需要注意的是,当使用 for 循环或倒序的 foreach 循环删除 List 中的元素时,需要注意索引值的变化,以免删除错误的元素或跳过某些元素。
相关问题
C#使用foreach遍历list
可以使用以下代码来使用 foreach 遍历 List:
```csharp
List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
Console.WriteLine(num);
}
```
在上面的示例中,我们首先创建了一个整数列表 `numbers`,然后使用 foreach 循环来遍历列表中的每个元素,并将其打印到控制台上。
c#中 linq foreach用法
在 C# 中使用 LINQ 的 `foreach` 语句可以迭代一个集合,如下所示:
```csharp
using System.Linq;
...
var numbers = new List<int> { 1, 2, 3, 4, 5 };
foreach (var number in numbers)
{
Console.WriteLine(number);
}
```
输出:
```
1
2
3
4
5
```
如果要使用 LINQ 过滤集合中的元素,可以使用 `Where` 方法,如下所示:
```csharp
using System.Linq;
...
var numbers = new List<int> { 1, 2, 3, 4, 5 };
foreach (var number in numbers.Where(n => n % 2 == 0))
{
Console.WriteLine(number);
}
```
输出:
```
2
4
```
在上面的代码中,`Where` 方法返回集合中所有偶数,然后使用 `foreach` 循环迭代它们并将它们打印出来。
阅读全文