Supprimer les éléments de la liste qui se croisent sur la propriété à l'aide de Linq

J'ai 2 listes d'objets différents (foo & bar) qui partagent la même propriété permet de l'appeler id.

public List<foo> foo { get; set; }
public List<bar> bar { get; set; }

Je veux supprimer tous les objets de foo qui ont un id qui n'existe pas dans bar

Comment cela peut-il être fait dans linq? J'ai été à la recherche à Intersect, RemoveAll & Join mais ne peut pas trouver un exemple où les listes sont d'un type différent.

InformationsquelleAutor ojhawkins | 2013-10-04