LInq запрашивает коллекцию внутри коллекции - PullRequest
7 голосов
/ 31 мая 2011

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

MainObject содержит список родительских

Родитель содержит список детей

Дочерние свойства (Id, Name)

как я могу запросить MainObject и найти все дочерние идентификаторы и сохранить его в строковом массиве, используя linq?

Ответы [ 3 ]

14 голосов
/ 31 мая 2011

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

var stringArray = MainObject.ListOfParent
                            .SelectMany(p => p.ListOfChildren
                                              .Select(c => c.Id.ToString()))
                            .ToArray()
4 голосов
/ 31 мая 2011

попробуйте

var id =parents.SelectMany(p => p.Children).Select(x => x.Id).ToArray();
3 голосов
/ 31 мая 2011
var arrayOfIds = MainObject.ListOfParents
                           .SelectMany(x => x.ListOfChildren)
                           .Select(x => x.Id)
                           .ToArray();
...