假設有這么一個運算式目錄樹
Expression<Func<Customer, bool>> expression1 = c => (c.Id > 5 && c.Name.Contains("asdd")) ||( c.Id==1 || c.Id==2);
現在運算式c.Id > 5 ,c.Name.Contains("asdd")這一類的已經決議出來了沒啥問題
關鍵是怎么能把圓括括號"()"也決議出來,否則這種多條件的,表達不出來原來的意思啊
uj5u.com熱心網友回復:
頂一下,是嫌分太少了嗎??????????????uj5u.com熱心網友回復:
這個不是需要你決議括號,需要的是你去遞回決議運算式樹(left,right)另外如果不是極其特別特殊的需求,不建議自己決議運算式樹,如果這個括號的都算問題的話、相信我問題多到你不敢想象
uj5u.com熱心網友回復:
可能是我把這個是想簡單了,我是繼承ExpressionVisitor來遞回的,一開始我就是簡單的取到一個就放Stack<string>里,最后一次拿出來就OK了,不過這么一搞的話,這種圓弧括號就弄不出來了;轉載請註明出處,本文鏈接:https://www.uj5u.com/net/83708.html
標籤:LINQ
上一篇:C#占位符的簡單使用
