Gibt es eine C # LINQ-Syntax für die Queryable.SelectMany () -Methode?

85

Gibt es beim Schreiben einer Abfrage mit der C # LINQ-Syntax eine Möglichkeit, die Queryable.SelectMany-Methode aus der Schlüsselwortsyntax zu verwenden?

Zum

string[] text = { "Albert was here", 
                  "Burke slept late", 
                  "Connor is happy" };

Mit fließenden Methoden konnte ich abfragen

var tokens = text.SelectMany(s => s.Split(' '));

Gibt es eine ähnliche Abfragesyntax?

var tokens = from x in text selectmany s.Split(' ')
BrianCooksey
quelle
Das Beispiel muss verbessert werden ... aber ich vermute, dass es den grundlegenden Punkt vermittelt. Fühlen Sie sich frei, bessere Beispiele vorzuschlagen.
BrianCooksey

Antworten:

122

Ja, Sie wiederholen einfach die from ... in Klausel:

var words = from str in text
            from word in str.Split(' ')
            select word;
driis
quelle
4
@BCooksey - Ja ... weil Sie aus einer Sammlung auswählen, die im ersten Ergebnis verschachtelt ist.
Justin Niessner
3
Alle diese Aufrufe könnten von SelectMany bearbeitet werden, was äußerst flexibel ist, aber der Compiler wählt je nach Form der Abfrage zwischen Select, SelectMany und überhaupt keiner Transformation
Sprague