我有一个对象列表,其中每个对象都包含一个内部对象列表,我要提取的是父列表(左列表),但是我被迫使用SelectMany函数..它可能吗?
天真的例子:
var query = objList.SelectMany(p => p.InternalList)
.Where(internalObj => internalObj.SomeProprerty == true)
.SELECT(objList);
有没有办法实现这个目标?
答案 0 :(得分:3)
假设你实际想要objList
,而不是我们当时正在查看的objList
元素,我想你只想要:< / p>
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)
{
...
}