¿Existe una sintaxis de C # LINQ para el método Queryable.SelectMany ()?


88

Al escribir una consulta utilizando la sintaxis de C # LINQ, ¿hay alguna forma de utilizar el método Queryable.SelectMany de la sintaxis de palabras clave?

por

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

Usando métodos fluidos pude consultar

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

¿Existe una sintaxis de consulta similar a

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

el ejemplo necesita algunas mejoras ... pero sospecho que transmite el punto básico. No dude en sugerir mejores ejemplos.
BrianCooksey

Respuestas:


126

Sí, simplemente repita la cláusula from ... in:

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

4
@BCooksey - Sí ... porque está seleccionando de una colección anidada dentro del primer resultado.
Justin Niessner

3
Todas estas llamadas podrían ser atendidas por SelectMany, que es enormemente flexible, pero el compilador elegirá entre Select, SelectMany e incluso ninguna transformación, dependiendo de la forma de la consulta
Sprague


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.