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.