i have a list of project objects:
IEnumerable projects
a Project class as a property called Tags
var filtered = projects; foreach (var tag in filteredTags) { filtered = filtered.Where(p => p.Tags.Contains(tag)) }
The nice thing with this approach is that you can refine search results incrementally.