LINQ для коллекции родителей и детей - PullRequest
0 голосов
/ 07 сентября 2018

Следуют мои две сущности

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

Я хочу, чтобы мой набор результатов содержал только те строки из Объекта B, где

isActive==true;

Я пробовал все виды запросов, т. Е. Со всеми, любыми, но я не смог достичь цели.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы хотите отфильтровать свой подсписок, здесь вы можете использовать проекцию, чтобы привязать ваши объекты к новому набору объектов, отфильтрованных так, как вы хотите.

Пример:

var filteredList = listA.Select(o => new A 
                                     {
                                         id = o.id, 
                                         name = o.name, 
                                         games = o.games.Where(g => g.isActive)
                                     });
...