views:

95

answers:

1

I have a object (product), with a property of type 'array'
e.g. product.tags = {"tag1","tag2","tag9"}

I have an array of input tags to filter on.

... but this is not quite working:

List<string> filterTags = new List<string>() { "tag1", "tag3" };

var matches = from p in products
  where p.Tags.Contains(filterTags)
  select p;

Any recommendations? Thanks.

+3  A: 

What is the Contains really meant to achieve? Do all items in Tags need to exist in filterTags? Or at least one of them? For the latter use Any and for the former use All. Your where line would change to:

where p.Tags.Any(tag => filterTags.Contains(tag))

or

where p.Tags.All(tag => filterTags.Contains(tag))
Ahmad Mageed
Thanks ... great. It meant 'any' actually. .... "... show all products that contain one-or-more of the input tags". I'll give that a go. THANK-YOU!
Rob