用布尔语解析表达式树

时间:2010-05-04 06:57:25

标签: c# linq lambda expression-trees

我正在尝试为一个linq提供程序解析一个表达式树,然后遇到一个与布尔有点麻烦的问题。

我可以解析这个问题。

var p = products.Where(x=>x.IsAvailable == true).ToList();

然而当它写得像这样?

var p = products.Where(x=>x.IsAvailable).ToList();

我只有一个会员才能看到,我无法看到我如何推断它是真还是假(!x.IsAvailable)。任何帮助都会很棒。

感谢。

1 个答案:

答案 0 :(得分:1)

希望这有帮助,

第一个有表达式树,如下所示。

RETURN ( Binary Expression (MemberAccess, Constant) )

第二个具有表达式树,如下所示。

RETURN ( MemberAccess )

由于member的类型为boolean,因此其值决定了执行的状态。