2011-05-23 4 views
0

Il y a 2 collections. Coll A est items = {1,2,3,4,5}. Coll B = {3, 6, 7} Besoin de trouver l'élément commun, puis supprimer tous les autres éléments de Coll A. Donc le résultat est que cet exemple devrait être Coll A = {3}.Filtrage à partir de 2 collections C#

Pouvez-vous un s'il vous plaît laissez-moi savoir d'une manière simple et élégante ..

Merci

+0

Quelle version de .NET? –

+0

Dans le monde réel, nous utiliserions 'Intersect()'. Cependant, s'il s'agit de devoirs, il n'acceptera probablement pas cela ... vous devrez y réfléchir et déployer les vôtres;) –

Répondre

4

Vous pouvez utiliser la méthode LINQ Intersect:

collectionA = collectionA.Intersect(collectionB).ToList(); 
+0

J'utilise 4.0. Merci .. – Andy

+0

Une autre instance est où j'ai un objet et il y a une liste d'ID qui sont passés. Comment puis-je supprimer les lignes correspondant à ces Id – Andy

0

Essayez ceci: http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect1. LINQ fournit une méthode appelée Intersect qui fonctionne comme une intersection mathématique de deux ensembles devrait.

+0

Une autre instance est où j'ai un objet et il y a une liste d'ID qui sont passés. Comment puis-je supprimer les lignes correspondant à ces Id – Andy

+0

@Andy Vous devriez vraiment poster une nouvelle question. Cependant, je pense que cela devrait vous aider [http://stackoverflow.com/questions/853526/c-using-linq-to-remove-objects-within-a-listt](http://stackoverflow.com/questions/ 853526/c-using-linq-pour-supprimer-objets-dans-un-listt) –

Questions connexes