2010-05-04 168 views
1

我想解析linq提供者的表達式樹,並用布爾運算符運行一個小小的障礙。用布爾表達式解析表達式樹

我可以解析這個沒問題。

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

但是當它寫成這樣?

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

我只能得到一個MemberAccess看,我不能看到我是如何演繹,這是真的還是假的(!x.IsAvailable)。任何幫助都會很棒。

謝謝。

回答

1

希望這有助於,

的第一個具有表達式樹,如下所示。

RETURN (Binary Expression (MemberAccess, Constant)) 

第二個表達式樹如下所示。

RETURN (MemberAccess) 

由於成員的類型是布爾值,所以它的值決定了執行的狀態。