使用Dynamic LINQ查询expando对象的集合

时间:2014-02-09 19:28:23

标签: c# linq dynamic

我有一组expando对象/动态为

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;

但是当我使用Dynamic Linq Library时

var query = lst.AsQueryable().Where("Name==@0", "ddd");

我从动态linq库中获得了一个解析异常。

请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:1)

ExpandoObject实现了IDictionary<string, object>,因此您可以利用它:

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