¿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...
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Los mejores IDE y herramientas para desarrollo en Rust en 2024
Microservicios en JavaScript: arquitectura y práctica de la A a la Z
Rust 2025: Hoja de ruta completa de principiante a profesional
Primer carácter de una cadena en Rust: analizando una pregunta popular