Как объединить элементы типа списка свойств других элементов списка в один список с помощью LINQ

#c# #linq

#c# #linq

Вопрос:

Допустим, у меня есть список элементов некоторого типа A:

 List<A> listA;
  

И у каждого класса A есть член, который является списком типа B:

 class A
{
    List<B> listB;
}
  

Каким должен быть мой запрос LINQ, чтобы объединить все B элементы всех listB s из A элементов в listA ? Конечно, я могу пройти через listA и продолжать добавлять новые List<B> все listB s, но я бы хотел сделать это с помощью запроса LINQ.

Комментарии:

1. Вы можете сгладить иерархию, SelectMany например listA.SelectMany(a => a.listB) , даст вам IEnumerable<B> .

2. Да, уже нашел это в MS docs, ваш ответ абсолютно правильный. Сделайте это ответом, чтобы я мог пометить его как ответ @juharr. Спасибо