Si l'instruction à l'intérieur d'une fonction Lambda?

Ce peut être assez simple, mais je suis plutôt nouvelle pour Lambda si patient avec moi.

J'ai une fonction qui utilise une fonction Lambda répéter.
La fonction principale reçoit un booléen indiquant la nécessité d'inclure certaines informations ou de ne pas l'intérieur de la lambda.

La fonction est conçue pour écrire une classe personnalisée à XML - je pense que le code est assez explanitory.

Pour le moment, j'ai surmonté le problème à l'aide d'une simple instruction if, mais il se sent moche donc demandé si quelqu'un connaissait une meilleure façon?

        private XElement ErrorListToXml(ErrorList el, bool outputTagsOnly)
    {
        //Need to declare in advance to call within the lambda.
        Func<ErrorType, XElement> recursiveGenerator = null;

        if (outputTagsOnly)
            recursiveGenerator = error => new XElement
                (error.Name,
                 error.ChildErrors.Select(recursiveGenerator));
        else
            recursiveGenerator = error => new XElement
          (error.Name,
          new XAttribute("Ignore", error.Filter),
           error.ChildErrors.Select(recursiveGenerator));


        var element = new XElement
                   ("ErrorList",
                    ChildErrors.Select(recursiveGenerator));

        Console.WriteLine(element);

        return element;
    }

OriginalL'auteur Chris | 2009-06-03