Existe-t-il une syntaxe C # LINQ pour la méthode Queryable.SelectMany ()?


88

Lors de l'écriture d'une requête à l'aide de la syntaxe C # LINQ, existe-t-il un moyen d'utiliser la méthode Queryable.SelectMany à partir de la syntaxe du mot clé?

Pour

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

En utilisant des méthodes fluides, je pourrais interroger

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

Existe-t-il une syntaxe de requête semblable à

var tokens = from x in text selectmany s.Split(' ')

l'exemple doit être amélioré ... mais je soupçonne qu'il fait passer le point de base. N'hésitez pas à suggérer de meilleurs exemples.
BrianCooksey

Réponses:


126

Oui, répétez simplement la clause from ... in:

var words = from str in text
            from word in str.Split(' ')
            select word;

4
@BCooksey - Oui ... parce que vous sélectionnez dans une collection imbriquée dans le premier résultat.
Justin Niessner

3
Tous ces appels pourraient être traités par SelectMany, qui est extrêmement flexible, mais le compilateur choisira entre Select, SelectMany et même pas de transformation du tout, selon la forme de la requête
Sprague


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.