C#: Est-il possible de déclarer une variable locale à une méthode anonyme?

Est possible d'avoir une variable locale dans une anonyme méthodes c#, c'est à dire dans le code suivant, je voudrais effectuer le décompte qu'une fois.

IQueryable<Enquiry> linq = db.Enquiries;

if(...) linq = linq.Where(...);

if(...) linq = linq.Where(e => 
    (x <= (from p in db.Orders where p.EnquiryId == e.Id select p).Count() && 
        (from p in db.Orders where p.EnquiryId == e.Id select p).Count() <= y));

if(...) linq = linq.Where(...);

var result = (from e in linq select e);

Est-il un "let" pour les fonctions anonymes?

Mise à jour:
Notez que je suis en ajoutant plusieurs clauses where après cette déclaration, donc je ne peux pas fermer avec un select.

/Niels

Avez-vous essayé ceci: var q = où l dans linq soit ct = (p) en db.Les ordres p.EnquiryId == e.Id select p).Count() sélectionnez l;
vous devez commencer avec " de "au lieu de "où". Alors la variable e est appelée, mais elle n'est pas définie n'importe où. Aussi ct défini, mais il n'est pas utilisé. Enfin, même si où a été changé à partir, le résultat devrait contenir les mêmes que linq (l'entrée). En dehors de cela, c'est génial.

OriginalL'auteur Niels Bosma | 2008-12-15