я могу придавить результаты коллекции детской в коллекции с SelectMany:SelectMany Три глубоких уровней
// a list of Foos, a Foo contains a List of Bars
var source = new List<Foo>() { ... };
var q = source.SelectMany(foo => foo.Bar)
.Select(bar => bar.barId)
.ToList();
это дает мне список всех Бар Идентификаторы в списке Foo. Когда я пытаюсь пройти три уровня, возвращается неправильный результат.
var q = source.SelectMany(foo => foo.Bar)
.SelectMany(bar => bar.Widget)
.Select(widget => widget.WidgetId)
.ToList();
Как я должен использовать SelectMany, чтобы получить список всех виджетов во всех барах в моем списке Фооса?
Редактировать Я пропустил вышеуказанное предложение, но код отражает цель. Я ищу список всех идентификаторов виджетов, а не виджеты.
«Неверный» результат: не все идентификаторы виджетов возвращаются.
выглядит ОК для меня. «неверный результат возвращается» не является описательным сообщением об ошибке, что вы получаете и чего вы ожидаете? – erikkallen