1

我有一个对象列表,其中每个对象都包含一个内部对象列表,我要获取的是父列表(左列表),但是我不得不使用 SelectMany 函数。它可能吗?

天真的例子:

var query = objList.SelectMany(p => p.InternalList)
                   .Where(internalObj => internalObj.SomeProprerty == true)
                   .SELECT(objList);

有没有办法做到这一点?

4

1 回答 1

3

假设您实际上并不想要objList,而是objList我们当时正在查看的元素,我认为您只想要:

var query = objList.SelectMany(p => p.InternalList, (o, p) => new { o, p })
                   .Where(pair => pair.p.SomeProperty)
                   .Select(pair => pair.o);

如果那不是您所追求的,那么如果您举一个具体的例子,那将真的很有帮助。

编辑:如果您只想要内部列表的任何元素的值为 的任何示例,您可以像这样更容易地做到这一点:objListSomePropertytrue

var value = objList.FirstOrDefault(o => o.InternalList.Any(p => p.SomeProperty));
if (value != null)
{
    ...
}
于 2012-08-13T16:07:51.423 回答