我有一个对象列表,其中每个对象都包含一个内部对象列表,我要获取的是父亲列表(左侧列表),但是我被迫使用SelectMany函数。有可能吗?
朴素的例子:
var query = objList.SelectMany(p => p.InternalList)
.Where(internalObj => internalObj.SomeProprerty == true)
.SELECT(objList);
有什么办法可以做到这一点吗?
假设你实际上不想要objList
,而是我们当时看到的objList
元素,我认为你只是想要:
var query = objList.SelectMany(p => p.InternalList, (o, p) => new { o, p })
.Where(pair => pair.p.SomeProperty)
.Select(pair => pair.o);
如果这不是你所追求的,如果你能举一个具体的例子,那将非常有帮助。
编辑:如果您只需要objList
中的任何示例,其中内部列表的任何元素的SomeProperty
值为 true
,您可以像这样更轻松地执行此操作:
var value = objList.FirstOrDefault(o => o.InternalList.Any(p => p.SomeProperty));
if (value != null)
{
...
}