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(' ')

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;

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.