Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在两层深的对象上执行LINQ Where操作并从中生成平面列表?_C#_Linq_Entity Framework Core - Fatal编程技术网

C# 如何在两层深的对象上执行LINQ Where操作并从中生成平面列表?

C# 如何在两层深的对象上执行LINQ Where操作并从中生成平面列表?,c#,linq,entity-framework-core,C#,Linq,Entity Framework Core,我有一个EF DB上下文查询,它生成如下所示的对象列表: public interface Parent { public string Name { get; set; } public virtual ICollection<Child> Children {get; set;} } public interface Child { public string Name {get; set;} public boolean isValid {g

我有一个EF DB上下文查询,它生成如下所示的对象列表:

public interface Parent
{
    public string Name { get; set; }
    public virtual ICollection<Child> Children {get; set;}
}

public interface Child 
{
    public string Name {get; set;}
    public boolean isValid {get; set;}
}
var list.Where(x => x.Children.Any(child => child.isValid)).toList();
我希望能够查询每个父级,提取每个具有isValid=true的子级的详细信息,然后将它们全部存储在一个列表中,但我无法理解语法

我试着做一些类似的事情

list.Where(x => x.Children.Where(child => child.isValid).toList()).toList();


但是上面只生成了一个IList

,我已经用这样的表达式实现了这一点:

public interface Parent
{
    public string Name { get; set; }
    public virtual ICollection<Child> Children {get; set;}
}

public interface Child 
{
    public string Name {get; set;}
    public boolean isValid {get; set;}
}
var list.Where(x => x.Children.Any(child => child.isValid)).toList();
关键字Any在这种情况下非常强大