Linq - работа со списками списков - PullRequest
7 голосов
/ 20 сентября 2011

У меня есть список класса A, класс A содержит список класса B.Я хочу работать со всеми экземплярами B во всех экземплярах класса A.

var myListOfA = new List<A>();

class A
{
    public List<B> ListOfB;
}

Как я могу перебрать все B т.е. foreach(var b in myListOfA.ListOfB){}?

Ответы [ 2 ]

9 голосов
/ 20 сентября 2011

Вы можете использовать SelectMany :

foreach(var b in myListOfA.SelectMany(a => a.ListofB))

Посмотреть его в действии на ideone.com .

2 голосов
/ 20 сентября 2011

еще один способ, который хорошо подходит для того, как я думаю о вложенных объектах:

(from A objA in myListOfA
    from B objB in objA.ListOfB
        select objB);

, это "разветвляет" список b во всех a в основном списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...