如何使用dynamic集合的LINQ

有没有办法将dynamic对象转换为IEnumerabletypes来过滤具有属性的集合。

 dynamic data = JsonConvert.DeserializeObject(response.Content); 

我需要访问这样的东西

 var a = data.Where(p => p.verified == true) 

有任何想法吗?

只要data是某种IEnumerable ,您可以使用:

 var a = ((IEnumerable) data).Cast<dynamic>() .Where(p => p.verified); 

Cast<dynamic>()将以IEnumerable<dynamic>结束,以便lambdaexpression式的参数types也是dynamic

尝试转换为IEnumerable<dynamic>

 ((IEnumerable<dynamic>)data).Where(d => d.Id == 1); 

这种方法比其他方法快4倍。

祝你好运