LINQ comparer deux listes et de les supprimer

J'ai deux listes. Je veux enlever tous les éléments de la liste 1 qui ne sont PAS présents dans la liste 2.

Ainsi, par exemple:

        var list1 = new List<DownloadTask>();
        list1.Add(new DownloadTask{ OperationID = 1, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 2, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 3, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 3, MachineID = 2 });

        var list2 = new List<DownloadTask>();
        list2.Add(new DownloadTask{ OperationID = 1, MachineID = 1 });
        list2.Add(new DownloadTask{ OperationID = 3, MachineID = 2 });

Après exécution list1 doit contenir uniquement les articles: avec la combinaison operationId = 1, machineId = 1 ET OperationId = 3, MachineId =2.

En d'autres termes, vous voulez connaître l'ensemble des éléments communs à ces deux listes.

OriginalL'auteur ShaneKm | 2013-01-07