Avatar ·

Como remover elementos de uma lista List<T> usando LINQ em C#?

Olá a todos! Sou iniciante em C# e me deparei com uma situação onde preciso remover de uma lista List vários elementos que satisfazem uma determinada condição. Atualmente estou usando um loop for comum com remoção por índice, mas isso funciona de forma estranha — após a remoção, os índices são deslocados e eu acabo pulando elementos.\n\nAqui está um exemplo: tenho uma lista de números e quero remover todos os números pares.\n\n```csharp\nList numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };\n\nfor (int i = 0; i < numbers.Count; i++)\n{\n if (numbers[i] % 2 == 0)\n {\n numbers.RemoveAt(i);\n }\n}\n```\n\nApós esse código, na lista permanecem os elementos: 1, 3, 5, 7, 9 — aparentemente correto. Mas se eu adicionar mais elementos ou complicar a condição, começam os problemas. Por exemplo, se eu remover o elemento no índice 1 (valor 2),