代码之家  ›  专栏  ›  技术社区  ›  Schotime

用布尔值解析表达式树

  •  1
  • Schotime  · 技术社区  · 16 年前

    我正试图解析一个linq提供者的表达式树,结果遇到了一个带有布尔值的小问题。

    我可以分析这个没问题。

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

    但是当它写成这样的时候?

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

    我只得到一个成员访问权限,看不到我如何推断它是真是假(!X.可用)。任何帮助都很好。

    谢谢。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Patrick D'Souza ob1    13 年前

    希望能帮上忙,

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

    RETURN ( Binary Expression (MemberAccess, Constant) )
    

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

    RETURN ( MemberAccess )
    

    由于成员属于布尔类型,因此其值决定执行状态。