假设我有以下课程:
class Parent
{
bool Gender { get; set; }
List<Child> Children { get; set; }
}
class Child
{
bool Gender { get; set; }
List<Child> GrandChildren { get; set; }
}
class GrandChild
{
bool Gender { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用linq,任何人都可以通过返回List<Child>
每个Child拥有的位置Gender == false
以及每个Child的GrandChild 来帮助我过滤Parent对象Gender == false
吗?
我设法返回了一个,List<GrandChild>
但我真的需要维护层次结构.
SLa*_*aks 13
您正在寻找
.Where(p => p.Children.All(c => !c.Gender && c.GrandChildren.All(g => !g.Gender))
Run Code Online (Sandbox Code Playgroud)
你的问题有点模糊.这是一个重建孩子和孙子列表的解决方案,我不确定我是否需要孩子.GrandChildren.All(gc =>!gc.Gender)所以为了清楚起见我把它留了下来:
parents.Select(parent => new Parent
{
Gender = parent.Gender,
Children = parent.Children.Where(child => !child.Gender).Select(child => new Child
{
Gender = false,
GrandChildren = child.GrandChildren.Where(gc => !gc.Gender).ToList()
}
).ToList()
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23554 次 |
最近记录: |