Hi Katie,
As you conclude yourself: both options you mention will work fine.
Of course you need to keep performance in mind: in large sets of data the performance may be low. But in case of large sets you will probably be better of normalizing the data into separate entities, storing the data in persistable entities and then letting the database do the work.
The union by the way is not needed, if you apply each filter to the previously filtered list.
I hope this helps.
Michiel