Update

Tweaks and using LINQ experssions.

Gotta test this.
There are other aspects of Linq that you need to take into account.  It's tricky, and caused me some confusion at first.  Returns from a Linq query are not actually the object or objects you think they are.  Linq returns an interator object which - when used in a foreach loop, will execute the Linq statement *at that time.*  Since you want to test the return of .All() at the end of your expression as a boolean, even casting the expression to a boolean will not work, because it isn't a foreach loop.  So the Linq query isn't even executed!  It will probably return true in all cases, because it always returns a valid iterator object, which isn't null or undefined.  

The proper way to get a result out of a Linq query in the way you intend is to use .FirstOrDefault() instead of .Any().  Underlying FirstOrDefault is a foreach loop, which executes the query and returns a single object from the collection, unwrapped.(or null if nothing matched the Linq query)