LINQ父母和儿童收藏

问题描述 投票:0回答:1

以下是我的两个实体

Public Class A {
public int id {get;set}
public string name {get;set;}
public List<B> games {get;set}
}

Public Class B {
public int id {get;set}
public string name {get;set;}
public bool isActive {get;set;}
public int a_id {get;set;}
}

对象A具有以下数据

1, name1 
2, name2
3, name3

对象B具有以下数据

1, cricket, true, 1
2, soccer, false, 1
3, snooket, false, 1

4, cricket, false, 2
5, soccer, true, 2
6, tennis, false, 2
7, poker, false, 2

8, cricket, false, 3
9, soccer, false, 3
10, tennis, true, 3
11, poker, false, 3

我希望我的结果集只包含Object B中的那些行

isActive==true;

我尝试了所有类型的查询,例如All,Any但我无法实现目标。

linq children selected
1个回答
1
投票

您想要过滤子列表,在这里您可以使用投影将对象绑定到根据需要过滤的新对象集。

示例:

var filteredList = listA.Select(o => new A 
                                     {
                                         id = o.id, 
                                         name = o.name, 
                                         games = o.games.Where(g => g.isActive)
                                     });
© www.soinside.com 2019 - 2024. All rights reserved.