Avatar ·

¿Cómo eliminar elementos de una lista List<T> usando LINQ en C#?

¡Hola a todos! Soy nuevo en C# y me encontré con una situación en la que necesito eliminar de una lista List varios elementos que cumplan una condición determinada. Actualmente uso un bucle for normal con eliminación por índice, pero esto funciona mal: después de eliminar, los índices se desplazan y me salto elementos. Aquí hay un ejemplo: tengo una lista de números y quiero eliminar todos los números pares. ```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); } } ``` Después de este código, en la lista quedan los elementos: 1, 3, 5, 7, 9 — parece correcto. Pero si agrego más elementos o complico la condición, comienzan los problemas. Por ejemplo, si elimino el elemento en el índice 1 (valor 2), el siguiente elemento (3) se desplaza al índice 1, y el bucle pasa al índice 2, saltándolo. He oído que LINQ puede ayudar, pero no entiendo cómo aplicarlo para eliminar. En LINQ hay métodos Where...