LINQ implementation of specification pattern