[英]c# dynamic accessing child as IEnumerable
我有以下動態對象作為dynamic類型的IEnumerable
[{
"id": 1,
"subList": [
{"specialId": 42},
{"specialId": 27}
]
},
{
"id": 2,
"subList": [
{"specialId": 13},
{"specialId": 14}
]
}]
我可以將對象放入IEnumerable of Dynamics中,並可以運行linq查詢,如下所示
listOfDynamics.Where(x => x.id == 2);
但是我想做的是能夠在subList上進行匹配
listOfDynamics.Where(x => ((IEnumerable)x.subList)).Where(y => y.specialId == 42));
因此在上面的示例中,它將返回ID為1而不是ID為2的對象
在你Where
,你要檢查,如果subList
包含任何元素specialId == 42
:
listOfDynamics.Where(x => ((IEnumerable<dynamic>)x.subList).Any(y => y.specialId == 42));
所以Any()
是您想要的方法。
並且您需要將x.subList
為IEnumerable<dynamic>
而不是僅IEnumerable
(如@ Ivan-Stoev和@Derked在注釋中所建議)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.