2014-02-09 178 views
-1

的expando對象的集合,我的expando對象的集合/動態的查詢使用動態LINQ

var lst = new List<dynamic>(); 
dynamic exp1 = new ExpandoObject(); 
exp1.Name = "ddd"; 
lst.Add(exp1); 
dynamic exp2 = new ExpandoObject(); 
exp2.Name = "aaa"; 
lst.Add(exp2); 

當我做

var query = from t in lst 
where t.Name == "ddd" 
select t; 

但是,當我使用動態的LINQ庫

var query = lst.AsQueryable().Where("[email protected]", "ddd"); 

我從動態linq庫得到一個解析異常。

請幫我實現這一點。

+2

不要交叉後跨越SE網絡。只要問一次,耐心等待。如果你在錯誤的地方提問,有人會讓你知道,甚至可能將你的問題轉移到正確的地方(正如這裏所發生的)。 –

+0

我以爲程序員是完全不同的。現在我很困惑哪一個是活躍的。請確認 –

+1

他們都非常活躍,但[你可以問問程序員](http://programmers.stackexchange.com/help/on-topic)(概念性問題)不同於[你可以在stackoverflow上提出的問題] (http://stackoverflow.com/help/on-topic)(具體編程問題)。 –

回答

1

ExpandoObject實現IDictionary<string, object>,這樣你就可以利用這一點:

var query = from t in lst 
where ((IDictionary<string, object>)t)["Name"] == "ddd" 
select t; 
+0

嗨svick, 我正在尋找動態LINQ支持來查詢擴展對象的集合。 此外它直接與'。' –

+0

我假設你將'Name'作爲一個字符串來獲得,而'''不適用於''。如果情況並非如此,爲什麼甚至需要Dynamic LINQ? – svick

+0

嗨svick, 總之,我試圖建立一個規則引擎。 我需要一些可能的方法。現在,我嘗試使用Expando對象和TypeDescriptionProvider的組合,並在需要的地方更改動態Linq代碼。 –