Есть ли синтаксис C # LINQ для метода Queryable.SelectMany ()?

88

При написании запроса с использованием синтаксиса C # LINQ есть ли способ использовать метод Queryable.SelectMany из синтаксиса ключевого слова?

За

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

Используя быстрые методы, я мог запросить

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

Есть ли синтаксис запроса, похожий на

var tokens = from x in text selectmany s.Split(' ')
Брайан Кукси
источник
пример нуждается в некотором улучшении ... но я подозреваю, что он передает основную мысль. Не стесняйтесь предлагать лучшие примеры.
BrianCooksey

Ответы:

126

Да, вы просто повторяете предложение from ... in:

var words = from str in text
            from word in str.Split(' ')
            select word;
Driis
источник
4
@BCooksey - Да ... потому что вы выбираете из коллекции, вложенной в первый результат.
Джастин Нисснер
3
Все эти вызовы могут обслуживаться с помощью SelectMany, которая чрезвычайно гибкая, но компилятор будет выбирать между Select, SelectMany и даже без преобразования вообще, в зависимости от формы запроса
Sprague