2011-05-23 30 views
0

有2個系列。 Coll A是items = {1,2,3,4,5}。 Coll B = {3,6,7} 需要找到共同項目,然後從Coll A中刪除所有其他項目。所以結果是這個例子應該是Coll A = {3}。從2個收藏篩選C#

你能一請讓我知道一個簡單而優雅的方式..

感謝

+0

.NET的哪個版本? – 2011-05-23 03:20:56

+0

在現實世界中,我們使用'Intersect()'。但是,如果這是家庭作業,他可能不會接受這一點......您必須仔細考慮並推出自己的作品;) – 2011-05-23 03:24:01

回答

4

您可以使用LINQ Intersect方法:

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

我正在使用4.0。謝謝.. – Andy 2011-05-23 03:53:02

+0

另一個實例是我有一個對象,並有ID的列表通過。如何刪除與這些Id對應的行 – Andy 2011-05-23 04:22:26

0

試試這個:http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect1。 LINQ提供了一種稱爲Intersect的方法,其操作方式與兩組數學交集相同。

+0

另一個實例是我擁有一個對象的位置,並且存在傳遞的ID列表。我如何刪除對應於這些Id的行 – Andy 2011-05-23 03:54:51

+0

@Andy您真的應該發佈一個新問題。不過,我認爲這應該可以幫助你[http://stackoverflow.com/questions/853526/c-using-linq-to-remove-objects-within-a-listt](http://stackoverflow.com/questions/ 853526/C-使用-LINQ到除去對象中之-listt) – 2011-05-26 03:53:04