如何使用LINQ查询对象列表中数组中的特定对象?

时间:2016-02-03 18:26:42

标签: c# linq

我有一个像这样的对象列表:

var obj =
[
    {a : [{v:1},{x:1}] },
    {a : [{y:1},{t:2}] },
    {a : [{z:1},{s:3}] }
]

我想只选择具有元素列表的对象,其中至少有一个元素具有属性“x”。在这种情况下,我希望LINQ返回{a:[{v:1},{x:1}]}。 像

这样的东西
obj.Where(s => 
    foreach(var o in s.a){ 
        if(o.x) return true; 
    }
    return false;
)

1 个答案:

答案 0 :(得分:1)

您正在寻找.Any()

obj.Where(s => s.a.Any(o => o.x)).ToList());