如何使用LINQ在C#中从List<T>中删除元素?
大家好!我是C#新手,遇到了需要从List中删除满足特定条件的多个元素的情况。目前我使用普通的for循环按索引删除,但这样效果不好——删除后索引会偏移,导致我跳过一些元素。
这是一个例子:我有一个数字列表,想删除所有偶数。
```csharp
List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < numbers.Count; i++)
{
if (numbers[i] % 2 == 0)
{
numbers.RemoveAt(i);
}
}
```
这段代码执行后,列表中剩下:1, 3, 5, 7, 9——看起来正确。但如果我添加更多元素或使条件更复杂,就会出现问题。例如,如果删除索引1处的元素(值为2),下一个元素(3)会移到索引1,而循环继续到索引2,从而跳过了它。
我听说LINQ可能有帮助,但不知道如何用它来删除。LINQ中有Where方法