posso appiattire i risultati di una collezione bambino all'interno di una collezione con SelectMany:SelectMany tre livelli profondi
// 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();
questo mi dà la lista di tutti i Bar Ids nella lista Foo. Quando provo ad andare su tre livelli, viene restituito il risultato errato.
var q = source.SelectMany(foo => foo.Bar)
.SelectMany(bar => bar.Widget)
.Select(widget => widget.WidgetId)
.ToList();
Come dovrei usare SelectMany per ottenere l'elenco di tutti i widget in tutti i bar nella mia lista dei Foos?
Modifica Ho sbagliato la frase sopra, ma il codice riflette l'obiettivo. Sto cercando un elenco di tutti gli ID widget, non i widget.
Un risultato "errato" non è tutti gli ID del widget restituiti.
sembra OK per me. "il risultato errato viene restituito" non è un messaggio di errore descrittivo, cosa ottieni e cosa ti aspetti? – erikkallen