Utiliser LINQ pour supprimer des elements d'une List<T>

Utiliser LINQ pour supprimer des elements d’une List

Eh bien, il serait plus facile de les exclure des le depart :

authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();

Cependant, cela ne ferait que changer la valeur de authorsList au lieu de supprimer les auteurs de la collection precedente. Alternativement, vous pouvez utiliser RemoveAll :

authorsList.RemoveAll(x => x.FirstName == "Bob");

Si vous avez vraiment besoin de le faire en vous basant sur une autre collection, nous vous recommandons d’utiliser un HashSet, RemoveAll et Contains :

var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));