Samuel Goldenbaum
Samuel Goldenbaum

Reputation: 18919

Extracting a list of objects that exist in another list objects using linq

Linq noob here.

I have IList<Product> ApplicableProducts and a IList<Product> CurrentProducts.

I need to return a new IList<Product> of all CurrentProducts that exist in Applicable products.

I understand I need to be working with .Contains and .Any but getting a little lost.

Any tips appreciated

Upvotes: 0

Views: 1026

Answers (2)

John Gietzen
John Gietzen

Reputation: 49544

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx

var intersection = list1.Intersect(list2);

or

var intersection = list1.Where(i => list2.Contains(i));

Upvotes: 4

Anton Gogolev
Anton Gogolev

Reputation: 115751

Can be done without LINQ. Here:

var identical = applicableProducts.Intersect(currentProducts);

You may also want to supply your own IEqualityComparer.

Upvotes: 2

Related Questions