LINQ: RemoveAll et obtenir les éléments supprimés

Qui est la façon la plus simple pour supprimer les éléments qui correspondent à une condition d'une liste et ensuite, obtenir ces éléments.

Je peux penser à quelques égards, je ne sais pas qui est le meilleur:

var subList = list.Where(x => x.Condition);
list.RemoveAll(x => x.Condition);

ou

var subList = list.Where(x => x.Condition);
list.RemoveAll(x => subList.Contains(x));

Tout cela est-il l'un des meilleurs moyens? Si elle l'est, lequel? Si elle ne l'est pas, comment dois je faire?

OriginalL'auteur Diego | 2012-04-16