I want to select elements from myCollection using myFilters for filtering:
var myFilters = new List<string> {"111", "222"};
var myCollection = new List<SomeClass> {
new SomeClass ("111"),
new SomeClass ("999")
};
from filter in myFilters
from item in myCollection
where item.Name == filter
select item
would return the “111” item.
However, if myFilters is empty I want to return all the items from myCollection.
var myFilters = new List<string> ();
var myCollection = new List<SomeClass> {
new SomeClass ("111"),
new SomeClass ("999")
};
// Here's where I'm lost...
from filter in myFilters
from item in myCollection
where item.Name == filter
select item
would return all items (“111” and “999”).
If these collections are going to be sizable, then I recommend using a join. It would look something like this:
Opportunities for using joins are easily overlooked. This join approach will outperform the contains approach when the lists are remotely large. If they’re small and performance is acceptable, then use whichever seems the clearest.