有没有一种方法可以将dynamic
对象转换为IEnumerable
Type以使用属性过滤集合。
dynamic data = JsonConvert.DeserializeObject(response.Content);
我需要访问这样的内容
var a = data.Where(p => p.verified == true)
有任何想法吗?
有没有一种方法可以将dynamic
对象转换为IEnumerable
Type以使用属性过滤集合。
dynamic data = JsonConvert.DeserializeObject(response.Content);
我需要访问这样的内容
var a = data.Where(p => p.verified == true)
有任何想法吗?
Answers:
只要data
是IEnumerable
某种类型的,就可以使用:
var a = ((IEnumerable) data).Cast<dynamic>()
.Where(p => p.verified);
的Cast<dynamic>()
是最终要与IEnumerable<dynamic>
使得参数lambda表达式的类型也是dynamic
。
尝试投射到 IEnumerable<dynamic>
((IEnumerable<dynamic>)data).Where(d => d.Id == 1);
这种方法比其他方法快4倍。
祝好运
IEnumerable<T>
where的地方T
,例如List<int>
。有时这可能是相关的,而其他时候则不相关。