Comment supprimer des éléments d'une liste List<T> avec LINQ en C# ?
Bonjour à tous ! Je suis débutant en C# et j'ai rencontré une situation où je dois supprimer plusieurs éléments d'une liste List qui satisfont une certaine condition. Actuellement, j'utilise une boucle for classique avec suppression par index, mais cela fonctionne mal — après la suppression, les indices se décalent et je saute des éléments.
Voici un exemple : j'ai une liste de nombres et je veux supprimer tous les nombres pairs.
```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);
}
}
```
Après ce code, il reste dans la liste les éléments : 1, 3, 5, 7, 9 — cela semble correct. Mais si j'ajoute plus d'éléments ou que je complexifie la condition, les problèmes commencent. Par exemple, si je supprime l'élément à l'index 1 (valeur 2), l'élément suivant (3) se déplace à l'index 1, et la boucle passe à l'index 2, le sautant ainsi.
J'ai entendu dire que LINQ peut aider, mais je ne comprends pas comment l'utiliser pour la suppression. LINQ a des méthodes comme Where...
No answers yet.
Connectez-vous pour laisser une réponse
Blogs